当我编辑一个文本字段时,我希望更改另一个文本字段。
editTextCount.addTextChangedListener( new TextWatcher( ) {
@Override
public void afterTextChanged( Editable arg0 ) {
if ( arg0.length( ) == 0 ) {
return;
}
editTextAmount.setText( value
* Integer.parseInt( arg0.toString( ) )+"" );
}
@Override
public void beforeTextChanged( CharSequence arg0, int arg1, int arg2,
int arg3 ) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged( CharSequence arg0, int arg1, int arg2,
int arg3 ) {
// TODO Auto-generated method stub
}
} );
当我编辑editTextCount时,editTextAmount应该更改,但是什么也没有发生。
编辑-另外,我忘了提到这是在自定义ArrayAdapter中。这可能是问题吗?
Edit2-我是个白痴。我应该在getView()方法中将
EditText editTextAmount
声明为final EditText editTextAmount
时将其声明为类级变量。谢谢各位的帮助。您的回答将帮助我将来解决错误。 最佳答案
我认为您需要在onTextChanged()
而不是afterTextChanged()
中实现代码。从docs:
调用此方法以通知您在s内计数
开始时的字符刚刚替换了具有
之前的长度。
附带说明一下,您应该在传递值之前检查parseInt的输入。如果数字无效,则会引发异常