2013-04-18 108 views
-4

所有的EditText在我的應用程序現在有10 EditText上,如果我在任何一個改變的EditText其加總,並顯示在 的TextView獲取陣列

,但我怎麼做用更少的代碼

或我做的一切EditText上OnChange事件所有的EditText

我嘗試使用TextWatcher觀看所有編輯文本,但我怎麼讓所有的EditText

private TextWatcher filterTextWatcher = new TextWatcher() { 

    public void afterTextChanged(Editable s) { 
     //Do your stuff 
     String text; 


    } 

    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 
     // do your stuff 
    } 

    public void onTextChanged(CharSequence s, int start, int before, 
      int count) { 
     // do your stuff 

    } 

}; 

plz幫助

回答

0

一個簡單的方法是獲得通過它的孩子擁有一切EditTexts,環父ViewGroup中,做任何操作:

ViewGroup editTextsContainer = (ViewGroup) findViewById(R.id.editTexts_container); 
int sum = 0; 
int i = edtTextsContainer.getChildCount(); 
for(int j=0;j<i;j++) { 
    View child = editTextsContainer.getChildAt(i); 
    if(child instanceof EditText) { 
     sum += Integer.parseInt((EditText)child).getText()); 
     // handle cases where edittext text is not numbers, or set the inputType in xml to avoid 
    } 
} 
myTextView.setText(""+sum); 

代碼沒有進行測試,只是給你大概的瞭解。

+0

但我的TextWatcher不能正常工作...... :( – Dharmeshsharma

+0

告訴我你是如何使用textwatcher的......你可以參考這個鏈接:http://stackoverflow.com/questions/8543449/how-to -use-textwatcher-in-android –

+0

謝謝我發現解決方案是我的錯誤。我不添加監聽器,所以這就是爲什麼不能正常工作。 – Dharmeshsharma