当我编辑一个文本字段时,我希望另一个文本字段发生变化。
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() 方法内声明 final EditText editTextAmount
时,我将 EditText editTextAmount
声明为类级变量。谢谢各位的帮助。您的回答将帮助我在未来的错误。
最佳答案
我认为您需要在 onTextChanged()
而不是 afterTextChanged()
中实现您的代码。来自docs :
This method is called to notify you that, within s, the count characters beginning at start have just replaced old text that had length before.
附带说明一下,您应该检查 parseInt 的输入在传递值之前。如果数字无效则抛出异常
关于java - Android EditText 更改其他 EditText 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282320/