Как узнать из addTextChangedListener, как изменился текст

У меня есть экран с EditText и ListView. При вводе в EditText запускается AsyncTask (любой существующий AsyncTask отменяется и отбрасывается) для локального запроса некоторых данных для отображения в ListView. Если EditText не содержит текста, все данные запрашиваются и отображаются. По сути, EditText - это фильтр данных на экране. Это легко сделать. В addTextChangedListener просто отмените свой предыдущий AsyncTask, запустите новый и передайте ему s.toString ().

Когда пользователь нажимает клавишу Backspace, чтобы стереть некоторый текст в EditText, я хочу поведение по умолчанию (когда все данные заполняют список). Это работает с моей текущей реализацией addTextChangedListener.

Тем не менее, у меня также есть кнопка X на правой стороне моего EditText. Это предназначено для очистки EditText (EditText.setText("");). Это особый случай. В этом случае я не хочу, чтобы запрос происходил. Проблема в том, что addTextChangedListener не кажется достаточно умным, чтобы это понять. Это вызвано, потому что текст изменился, и все данные запрашиваются.

Как мне предотвратить это?

Ответы на вопрос(1)

Ваш ответ на вопрос