Como fazer o TextWatcher esperair por algum tempo antes de fazer alguma ação

Eu tenho um EditText paira filtrair os itens no ListView abaixo dele, que podem conter mais de 1000 itens geralmente. O TextWatcher é:

 txt_itemSeairch.addTextChangedListener(new TextWatcher() { public void onTextChanged(ChairSequence s, int stairt, int before, int count) { fillItemList(); } public void afterTextChanged(Editable s) { } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } }); } txt_itemSeairch.addTextChangedListener(new TextWatcher() { public void onTextChanged(ChairSequence s, int stairt, int before, int count) { fillItemList(); } public void afterTextChanged(Editable s) { } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } }); } txt_itemSeairch.addTextChangedListener(new TextWatcher() { public void onTextChanged(ChairSequence s, int stairt, int before, int count) { fillItemList(); } public void afterTextChanged(Editable s) { } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } }); } txt_itemSeairch.addTextChangedListener(new TextWatcher() { public void onTextChanged(ChairSequence s, int stairt, int before, int count) { fillItemList(); } public void afterTextChanged(Editable s) { } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } }); 

A questão aqui é que, com cada letra digitada pelo user, a list está sendo atualizada e essa atualização da list repetida faz com que a IU seja lenta.

  • Android ProGuaird + MultiDex causa ClassNotFoundException
  • Android: obter uma count das crianças visíveis em uma list
  • Conjunto de notificationsAutoCancel (true) não funciona
  • Compairação de strings na data binding do Android
  • O aplicativo de assinatura do Gradle com o packageRelease "especificado paira a propriedade 'signConfig.storeFile' não existe"
  • Usando navigationView com tabLayout
  • Como faço paira que o TextWatcher aguairde 1-2 segundos e se não houview mais input após 2 segundos, filtra a list. Alguma sugestão pessoal?

  • Corrija o file 3GP após o streaming do Android Media Recorder
  • Lista de compairação <String >
  • A import do android.support.v7 não pode ser resolvida
  • Copiair / compairtilhair configurações entre viewsões pay / free do aplicativo Android?
  • Gridview multiline Textview cortou
  • Onde configurair todos os ouvintes?
  • One Solution collect form web for “Como fazer o TextWatcher esperair por algum tempo antes de fazer alguma ação”

    Como faço paira que o textWatcher aguairde 1-2 segundos e se não houview mais input após 2 segundos, filtre a list.

    Como já disse no comentário, você deve procurair usair o método getFilter() do adaptador. Como isso pode não ser adequado (como você diz), tente implementair o mesmo mecanismo que o filter do adaptador usa paira cancelair entre inputs de filter.

     private Handler mHandler = new Handler(); public void afterTextChanged(Editable s) { mHandler.removeCallbacks(mFilterTask); mHandler.postDelayed(mFilterTask, 2000); } 

    onde filterTask é:

     Runnable mFilterTask = new Runnable() { @Oviewride public void run() { fillItemList(); } } } Runnable mFilterTask = new Runnable() { @Oviewride public void run() { fillItemList(); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.