У меня есть ListView
, где каждая строка имеет элемент управления EditText
. Я хочу добавить TextChangedListener
в каждую строку; который содержит дополнительные данные, в которых указывается, какая строка была EditText
. Проблема заключается в том, что при вызове getView
вызывается несколько TextWatchers
; потому что convertView
уже имеет TextWatcher
(и тот, который указывает на другую строку).
MyTextWatcher watcher = new MyTextWatcher(currentQuestion);
EditText text = (EditText)convertView.findViewById(R.id.responseText);
text.addTextChangedListener(watcher);
MyTextWatcher
- это мой класс, который реализует TextWatcher
; и обрабатывает текстовые события. CurrentQuestion позволяет мне узнать, в какой строке я действую. Когда я ввожу в поле; вызывается несколько экземпляров TextWatcher
.
Есть ли способ удалить TextWatchers
перед добавлением нового? Я вижу метод removeTextChangedListener
, но для этого требуется конкретный TextWatcher
, и я не знаю, как получить указатель на TextWatcher
, который уже существует.