0

どの EditText が変更されたかを検出するために、 TextWatcher インターフェイスを使用しようとしています。10 個の EditText を使用するアクティビティがありますが、それぞれに 10 個の TextWatcher を使用するのは奇妙に見えます。

TextWatcher を 1 つだけ使用し、関数 afterTextChanged の Editable で switch ステートメントを使用する方法はありますか?

4

2 に答える 2

0

私がすることは、そのクラスを拡張して作成するクラスを作成することEditTextですTextWatcher。次に、これらのEditTextをXMLに実装するか、TextWatcherそれぞれをリッスンしてJavaでプログラムで作成できますEditText

これがうまくいくかどうかはわかりませんが、試してみることができます。

于 2013-03-06T16:16:07.220 に答える
0

EditText私はこれまでこれを試したことがありませんが、焦点が合っているかどうかを確認すればうまくいくはずです。これを実行する方法はいくつかありますが、最も簡単な方法はEditText、メソッド内のフォーカスを確認することTextWatcherです。次のようなことをする必要があります。

if(mEdit1.hasFocus()) {
  ...
} else if(mEdit2.hasFocus()) {
  ...
} else if(mEdit3.hasFocus()) {
  ...
}

別のアプローチは、ルートビューでOnGlobalFocusChangeListenerEditTextを使用し、現在フォーカスがあることを示す変数を設定することです。それでも、どれに焦点が当てられているかを確認するために多くのifステートメントが必要EditTextになりますが、より再利用可能なソリューションになる可能性があります。

于 2013-03-06T16:17:44.917 に答える