По какой-то причине вызовы событий TextWatcher при одном изменении текста происходят некорректно. иногда они срабатывают один раз (как и должно быть), иногда дважды, а иногда и 3 раза. понятия не имею, почему, все очень просто. также иногда параметр Editable в afterTextChanged() возвращает пустые значения в toString() и length().
код приведен ниже:
Код: Выделить всё
private TextWatcher mSearchAddressTextChangeListener = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable searchedAddress) {
System.out.println("called multiple times.");
}
};
Я видел, что вопрос, заданный в разделе «События TextWatcher», вызывается дважды, но у меня события срабатывают более (или менее) раза два.
В любом случае, будем благодарны за любую помощь.
РЕДАКТИРОВАТЬ: Я удалил содержимое afterTextChanged(), потому что эта проблема возникает даже без моего кода. что заставляет меня думать, что это ошибка. Ошибка возникает, когда символ «пробел» вводится сразу после обычного символа (обработчики событий срабатывают дважды) или когда символ «пробел» после обычного символа удаляется (обработчики событий Backspace. срабатывают 3 раза). помощь все равно будет оценена по достоинству.
Подробнее здесь: https://stackoverflow.com/questions/175 ... iple-times
Мобильная версия