Como saber, de addTextChangedListener, como o texto foi alterado
Eu tenho uma tela com um EditText e um ListView. À medida que você digita no EditText, um AsyncTask é iniciado (qualquer AsyncTask existente é cancelado e lançado) para consultar localmente alguns dados a serem exibidos no ListView. Se o EditText estiver vazio de texto, todos os dados serão consultados e exibidos. Essencialmente, o EditText é um filtro dos dados na tela. Isso é fácil de fazer. No addTextChangedListener, simplesmente cancele seu AsyncTask anterior, inicie um novo e passe para ele s.toString ().
Quando o usuário atinge o backspace para apagar algum texto no EditText, eu quero o comportamento padrão (onde todos os dados preenchem a lista). Isso funciona com minha implementação atual de addTextChangedListener.
No entanto, também tenho um botão X no lado direito do meu EditText. Isso destina-se a limpar o EditText (EditText.setText("");
). Este é um caso especial. Nesse caso, não quero que a consulta aconteça. O problema é que addTextChangedListener não parece inteligente o suficiente para saber disso. Ele é acionado porque o texto foi alterado e todos os dados foram consultados.
Como evito isso?