我对 TextWatcher 有一个烦人的问题。我一直在网上搜索,但找不到任何东西。如果有人可以帮助我,我将不胜感激。
由于某种原因,在一个文本更改时对 TextWatcher 事件的调用是不稳定的。有时它们会被触发一次(就像他们应该的那样),有时会被触发两次,有时会被触发 3 次。不知道为什么,整个事情非常简单。有时 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
我看到在TextWatcher 的事件中提出的问题被调用了两次,但我触发的事件多于(或少于)两次。
无论如何,感谢任何帮助。
编辑:我删除了 afterTextChanged() 的内容,因为即使没有我的代码,这个问题也会发生。是什么让我相信这是一个错误。当在常规字符后立即输入“空格”字符(触发事件处理程序两次)或删除常规字符后的“空格”字符(退格键。事件处理程序被触发 3 次)时,会发生该错误。帮助仍将不胜感激。