2014-01-27 61 views
0

我怎麼可以在那一刻有這麼TextWatcher增加他們離開,因爲他們放在號碼的EditText如何使用TextWacher獲得多個EditText總和的結果?

edit1.addTextChangedListener(mTextEditorWatcher); 
    edit2.addTextChangedListener(mTextEditorWatcher); 
    edit3.addTextChangedListener(mTextEditorWatcher); 
} 

private final TextWatcher mTextEditorWatcher = new TextWatcher() { 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) 
    { 

    } 

    public void onTextChanged(CharSequence s, int start, int before, int count) 
    { 

    } 

    public void afterTextChanged(Editable s) 
    { 
     String change; 
     int num= 0; 
     int n = 0; 
     change = s.toString(); 
     num = Integer.parseInt(change); 
     n = n + num; 
     Posi.setText(n); 
    } 
}; 

回答

1

TextWatcher需要知道什麼EditTexts它需要得到幾個的EditText的總和的結果在一個TextView合計。例如,你可以在構造函數中傳遞它們。

private class MyTextWatcher implements TextWatcher { 
    private List<EditText> editTexts; 

    public MyTextWatcher(EditText et1, EditText et2, EditText et3){ 
     .... 
    } 

    // or 
    public MyTextWatcher(List<EditText> editTexts){ 
     this.editTexts = editTexts; 
    } 

    .... 
} 
+0

問題不是總和,但它在我刪除時失敗 – user3241467

+0

當您刪除什麼? 「EditText」中的文字?在將其解析爲int之前檢查字符串的內容,或者捕獲如果字符串不包含有效的int值時拋出的NumberFormatException異常。 – SimonSays