我在使用TextWatcher时遇到了一个烦人的问题。我已经在网上搜索了很久,但是没有找到任何有用的信息。如果有人能帮忙解决这个问题,我将不胜感激。
由于某些原因,每次文本更改时对TextWatcher事件的调用是不稳定的。有时它们会被触发一次(就像应该的那样),有时两次,有时三次。我不知道为什么,整个过程非常简单明了。此外,有时在afterTextChanged()中Editable参数返回的toString()和length()都是空值。
以下是代码:
private TextWatcher mSearchAddressTextChangeListener = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable searchedAddress) {
System.out.println("called multiple times.");
}
};
在afterTextChanged()
(以及AsyncTask
)中,我没有对文本或EditText
视图进行任何更改。
我看到了在Events of TextWatcher are being called twice中提出的问题,但我的事件被触发的次数比两次多(或少)。
无论如何,感激任何帮助。
编辑:我删除了afterTextChanged()
的内容,因为即使没有我的代码也会出现这个问题。这让我相信这是一个错误。当在普通字符后输入一个空格字符时(事件处理程序被触发两次),或者在删除普通字符后移除一个空格字符时(退格。事件处理程序被触发3次),就会出现错误。仍然需要帮助。