У меня есть раздражающая проблема с TextWatcher. я искал в Интернете, но ничего не нашел. оцените, сможет ли кто-нибудь помочь мне.
По какой-то причине вызовы событий 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.");
}
};
внутри afterTextChanged()
(и AsyncTask
) im не вносит никаких изменений в текст или в представление EditText
.
Я видел вопрос, заданный в События TextWatcher вызываются дважды, но im, у которых события срабатывают больше (или меньше), чем дважды.
В любом случае, оцените любую помощь.
EDIT: Я удалил содержимое afterTextChanged(), потому что эта проблема происходит даже без моего кода. что заставляет меня думать, что это ошибка. Ошибка возникает, когда "пробел" char вводится сразу после регулярного char (обработчики событий запускаются дважды) или когда "пробел" char после удаления обычного char (backspace. Обработчики событий срабатывают 3 раза). помощь по-прежнему будет оценена.