Как удалить всех слушателей, добавленных с помощью addTextChangedListener

у меня есть ListView , где каждая строка имеет элемент управления EditText . Я хочу добавить TextChangedListener в каждую строку; тот, который содержит дополнительные данные, в которых говорится, в какой строке был EditText . Проблема в том, что при вызове getView добавляются несколько TextWatcher ; потому что convertView уже имеет TextWatcher (и тот, который указывает на другую строку).

MyTextWatcher watcher = new MyTextWatcher(currentQuestion);
EditText text = (EditText)convertView.findViewById(R.id.responseText);
text.addTextChangedListener(watcher);

MyTextWatcher - это мой класс, который реализует TextWatcher ; и обрабатывает текстовые события. CurrentQuestion позволяет мне узнать, в какой строке я действую. Когда я печатаю в поле; вызывается несколько экземпляров TextWatcher .

Есть ли способ удалить TextWatcher перед добавлением нового? Я вижу метод removeTextChangedListener , но для этого требуется передача определенного TextWatcher , и я не знаю, как получить указатель на TextWatcher , который уже есть.

49
задан inazaruk 7 June 2011 в 08:29
поделиться