[英]Android EditText change other EditText value
當我編輯一個文本字段時,我希望更改另一個文本字段。
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
,將EditText editTextAmount
聲明為類級別的變量。 謝謝各位的幫助。 您的回答將幫助我將來解決錯誤。
我假設您要嘗試的是在editTextCount
鍵入一個數字,然后將該數字乘以value
然后將最終計算結果寫入editTextAmount
。 如果是這種情況,為什么不使用,
editTextAmount.setText(value * Integer.parseInt(editTextCount.getText()));
使用Editable
對象創建無限遞歸情況非常容易,在這種情況下,您將無限次調用afterTextChanged
,如果正在監聽的內容或其Editable
對象被更改, afterTextChanged
調用afterTextChanged
。 因此,如果您在afterTextChanged
更改Editable
對象,它將以遞歸方式調用其self。
嘗試打印這些值以識別任何問題可能是值得的:
System.out.println("Value: " + value);
System.out.println("Count: " + Integer.parseInt(editTextCount.getText()));
System.out.println("Amount: " + (value * Integer.parseInt(editTextCount.getText())));
afterTextChanged()應該可以。 您確定某些值未正確初始化(例如value = 0)嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.