0
我正在嘗試處理輸入字符時,清除框,並準備處理另一個。Android EditBox TextWatcher太火了
該應用程序使用一個總是有1個字符的EditBox。當用戶輸入一個新角色時,一個監聽者將會觸發。該監聽器(TextWatcher)的afterTextChanged方法處理輸入的字符並清除文本。之後,它清除文本框,並讓它準備好聽下一個。然而,在那之後它繼續發射。我嘗試設置一個標誌來處理所有其他的射擊,但有時它是迂迴的並且觸發了奇數次,並且錯誤地翻轉了標誌。
@Override
public void afterTextChanged(Editable arg0) {
if (arg0.length() > 0) {
//if (mToggle)
{
act.checkText(arg0.toString().substring(arg0.length() - 1));
text.setText("");
}
mToggle = !mToggle; // to catch extra fire-off
}
}
mToggle是TextWatcher實現的屬性變量。
1)爲什麼多次點火?
2)我需要在這裏做什麼?
謝謝了,
彌敦道
您的第一個問題的答案字面上是[在文檔中](http://developer.android.com/reference/android/text/TextWatcher.html):* 「從這個回調函數['afterTextChanged()']對s進行進一步的修改是合理的,但是要注意不要陷入無限循環,因爲你所做的任何修改都會導致這個方法成爲ca遞歸地遞歸**。「* –