我有动态表。当用户输入数量时,值(TextView
)应更新(数量*价格)。
我的问题是我正在创建TextView
&动态EditText
。如何获得TextView
的ID?
EditText txtQty = new EditText(this);
txtQty.setId(i);
txtQty.setVisibility(1);
txtQty.setHint("0.00");
txtQty.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
tr.addView(txtQty);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(txtQty, InputMethodManager.SHOW_IMPLICIT);
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(txtQty.getWindowToken(), 0);
txtQty.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
Log.v("TAG", "afterTextChanged" + s.toString());
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
Log.v("TAG", "beforeTextChanged");
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.v("TAG", "onTextChanged");
}
});
TextView txtVal = new TextView(this);
txtVal.setTextSize(1, 12);
createView(tr, txtVal,"0.00");
在afterTextChanged()
方法中,我想设置值(txtVal
),例如txtVal .setText(215847.00);
我们如何在txtVal
方法中调用afterTextChanged()
?
答案 0 :(得分:2)
尝试在txtVal
之前声明addTextChangedListener()
。您可能需要将txtVal
声明为final TextView txtVal
。然后,您应该能够设置txtVal
。