2

TextWatcherを使用してにを追加し、をEditTexts使用addTextChangedListenerして削除できることを知っていremoveTextChangedListenerます。EditTextでも今は持っているかどうか確認したいですTextWatcher

どうやってやるの?

グリッドがあります。アダプターが付いています。私のアダプタは、定義されたアイテムのタイプがEditTextであるかどうかをチェックし、それに追加TextWatcherします。メソッドgetViewが呼び出されるTextWatcherと、それに追加されEditTextます。追加された場合は追加しないようにしTextWatchersます。

4

4 に答える 4

4

回避策があります。Viewのメソッドを使用してgetviewメソッド内のedittextにタグを設定できます。setTagこの前に、getTagがnullでないかどうかを確認してください。すでに設定されている場合は、TextWatcher...

if(editText object getTag is null then editText.seTtag and add watcher)else return

于 2013-01-02T07:03:33.757 に答える
1

これを具体的に行うためのAPIはありません。ブール変数を維持してみませんtextWatchか?

ウォッチャーを設定するたびに、これをtrueに設定し、ウォッチャーが削除されたときにfalseに設定します。

この変数をチェックするだけで、editTextにウォッチャーがあるかどうかを確認できます。

チェックする必要のあるeditTextボックスが複数ある場合は、ブール値の配列を使用できます。

于 2013-01-02T05:27:27.347 に答える
1

を作成して、を含むすべてのオブジェクトMapを保存できます。EditTextTextWatcher

例えば

Map<EditText, Boolean> textWatcherMap = new HashMap<>();

にを追加するときはTextWatcherEditTextその参照をに追加しますHashMap

TextWatcher textWatcher = new TextWatcher(..);
EditText editText = (EditText) findViewById(R.id.editTextId);
editText.addTextChangedListener(textWatcher);
textWatcherMap.put(editText, true);

次に、作業しているときに、参照をEditText確認しますHashMap

if(textWatcherMap.get(editText) != null)
    useCurrentTextWatcher();
else 
{
    addNewTextWatcher();
    textWatcherMap.put(editText, true);
}
于 2013-01-04T03:35:15.697 に答える
1

あなたは呼び出すことができます

edittext.removeTextChangedListener(YourWatcherObject)

新しいウォッチャーを追加するたびに、複数のウォッチャーを含めることはできません。

edittext.addTextChangedListener(YourWatcherObject)
于 2021-01-14T14:20:29.123 に答える