我正在尝试使用TextWatcher接口来检测哪个EditText已更改。 我有一个包含10个EditTexts的活动,每个使用10个TextWatchers看起来很奇怪。
有什么方法可以只使用一个TextWatcher并在函数afterTextChanged上的Editable上使用switch语句?
答案 0 :(得分:0)
我要做的是创建一个扩展EditText
并在该类中创建TextWatcher
的类。然后,您可以在XML中实现这些EditTexts,或者使用TextWatcher
监听每个EditText
以Java编程方式创建它们。
不知道这是否适合你,但你可以尝试一下。
答案 1 :(得分:0)
我以前从未尝试过这个问题,但如果检查EditText
是否成为焦点,它应该会有效。有几种方法可以解决这个问题,最简单的方法是检查EditText
方法中TextWatcher
的焦点。你需要做这样的事情:
if(mEdit1.hasFocus()) {
...
} else if(mEdit2.hasFocus()) {
...
} else if(mEdit3.hasFocus()) {
...
}
另一种方法是在根视图上使用OnGlobalFocusChangeListener并设置一个变量,指示EditText
当前具有焦点。它仍然需要大量if
语句来检查哪个EditText
具有焦点,但可能是一个更可重用的解决方案。