一些只有一个TextWatcher的EditTexts

时间:2013-03-06 16:03:36

标签: android android-edittext textwatcher

我正在尝试使用TextWatcher接口来检测哪个EditText已更改。 我有一个包含10个EditTexts的活动,每个使用10个TextWatchers看起来很奇怪。

有什么方法可以只使用一个TextWatcher并在函数afterTextChanged上的Editable上使用switch语句?

2 个答案:

答案 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具有焦点,但可能是一个更可重用的解决方案。