在不使用XML id的情况下从EditText获取文本
我正在以编程方式创建一个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();
}
});
充分利用EditText
final
final EditText textNewProdPrice = new EditText(this);
,或者如果你想参考出来的块文档setId()的使用setId()
:
设置此视图的标识符。标识符在该视图的层次结构中不必是唯一的。标识符应该是一个正数。
EditText textNewProdPrice = new EditText(this);
textNewProdPrice.setId(1001); //Your any random id
编辑:它在onCreate中最终确定是有意义的,我只是混合了范围。谢谢你的回答,我会尽快接受。 使它在onCreate内部最终没有价值阅读文本,而在onClick它给了我这个说法错误EditText不能应用于android.view.View.OnClickListener – user2315641 2014-09-29 13:41:22
伟大的工作你:)快乐编码。 。! – 2014-09-29 13:48:53
就宣布你的EditText最终的建议:
final EditText textNewProdPrice = new EditText(this);
做了一个的EditText ID查找将是一种浪费,因为你已经对它的引用。
使用'setId()'方法 – 2014-09-29 13:33:15
或者只是让它最终! :O – Pavlos 2014-09-29 13:34:36
@SagarPilkhwal据我所知,这个ID不是XML,所以你不能像这样使用'findViewById(R.id.entry)' – user2315641 2014-09-29 13:35:41