我需要一种方式来检测EditText是否被用户输入更改或者应用程序以编程方式更改文本。有任何标准方法吗?我想我总是可以像在setText()之前取消TextWatcher,之后再设置回来一样做一些hackish的事情,但肯定有更好的方法... 对吧?
我尝试在TextWatcher中检查EditText是否聚焦,但因为在滚动时EditText会“半随机”聚焦,所以那没什么用...
背景:我有一个ListView,在每个列表项中都有EditTexts。我解决了存储EditTexts的值以便在用户滚动时重复使用的基本问题。
我还有一个TextWatcher,在用户编辑任何EditTexts的内容时,它会将所有EditTexts的值相加并显示总和。
问题是,当我滚动列表并且我的自定义适配器正在重新绑定视图上存储的值到EditTexts时,这也会触发TextWatchers afterTextChanged()方法,从而导致滚动出现延迟,因为求和函数被触发了。
我尝试在TextWatcher中检查EditText是否聚焦,但因为在滚动时EditText会“半随机”聚焦,所以那没什么用...
背景:我有一个ListView,在每个列表项中都有EditTexts。我解决了存储EditTexts的值以便在用户滚动时重复使用的基本问题。
我还有一个TextWatcher,在用户编辑任何EditTexts的内容时,它会将所有EditTexts的值相加并显示总和。
问题是,当我滚动列表并且我的自定义适配器正在重新绑定视图上存储的值到EditTexts时,这也会触发TextWatchers afterTextChanged()方法,从而导致滚动出现延迟,因为求和函数被触发了。
EditText
实际上具有焦点时才对文本编辑做出反应。 - Diederik