2014-09-29 90 views
1

我正在以編程方式創建一個EditText字段,其輸入值需要先閱讀。但是當我嘗試閱讀我的OnClickListener中的文本時,它說textNewProdPrice在內部類中被訪問,並且應該聲明爲final。我如何解決這個問題?這是我到目前爲止有:在不使用XML id的情況下從EditText獲取文本

EditText textNewProdPrice = new EditText(this); 
     textNewProdPrice.setTextColor(Color.WHITE); 
     textNewProdPrice.setHint("New Value"); 
     textNewProdPrice.setTextSize(25); 
     textNewProdPrice.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED | InputType.TYPE_NUMBER_FLAG_DECIMAL); 

     Button buttonPriceChange = new Button (this); 
     buttonPriceChange.setClickable(true); 
     buttonPriceChange.setBackgroundResource(R.drawable.buttonmain); 
     buttonPriceChange.setTextColor(Color.WHITE); 
     buttonPriceChange.setText("Change"); 
     buttonPriceChange.setTextSize(25); 

     prodDetails.addView(textNewProdPrice); 
     prodDetails.addView(buttonPriceChange); 

buttonPriceChange.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       String newProductPrice = textNewProdPrice.getText().toString(); 
       ContentValues values = new ContentValues(); 
       values.put(COLUMN_PRODUCTS_PRICE, newProductPrice); 
       dataBase.update(TABLE_NAME_PRODUCTS, values, "_id='" + currentProductID + "'"); 
       Intent intent = new Intent(products_details.this, products_details.class); 
       intent.putExtra("currentProduct", currentProductID); 
       startActivity(intent); 
       finish(); 
      } 
     }); 
+0

使用'setId()'方法 – 2014-09-29 13:33:15

+0

或者只是讓它最終! :O – Pavlos 2014-09-29 13:34:36

+0

@SagarPilkhwal據我所知,這個ID不是XML,所以你不能像這樣使用'findViewById(R.id.entry)' – user2315641 2014-09-29 13:35:41

回答

1

充分利用EditTextfinal

final EditText textNewProdPrice = new EditText(this); 

,或者如果你想參考出來的塊文檔setId()的使用setId()

設置此視圖的標識符。標識符在該視圖的層次結構中不必是唯一的。標識符應該是一個正數。

EditText textNewProdPrice = new EditText(this); 
textNewProdPrice.setId(1001); //Your any random id 
+1

編輯:它在onCreate中最終確定是有意義的,我只是混合了範圍。謝謝你的回答,我會盡快接受。 使它在onCreate內部最終沒有價值閱讀文本,而在onClick它給了我這個說法錯誤EditText不能應用於android.view.View.OnClickListener – user2315641 2014-09-29 13:41:22

+0

偉大的工作你:)快樂編碼。 。! – 2014-09-29 13:48:53

1

就宣佈你的EditText最終的建議:

final EditText textNewProdPrice = new EditText(this); 

做了一個的EditText ID查找將是一種浪費,因爲你已經對它的引用。

相關問題