2010-05-10 14 views
0

J'ai effectivement eu un multiautocompletetextview, où j'appelle l'hôte après 3 caractères pour avoir une liste de recherche dynamique. Mais si l'utilisateur met d'autres caractères, mon hôte d'appel de code pour chacun d'entre eux. Donc ça doit être très long. Puis-je attendre un moment (environ 500 ms) avant de lancer l'action, afin de voir si l'utilisateur fait une action ou pas? c'est possible ?attendre t temps avant de lancer une action?

Répondre

1

Vous pouvez utiliser un fil séparé. Lorsque l'utilisateur a entré le texte, vous pouvez créer un fil, le faire dormir pendant 500ms et quand il va se réveiller, vérifiez si le texte tapé est modifié.

EDIT

Créer un gestionnaire

private Handler h = new Handler(); 

Créer un runnable qui rend votre recherche dynamique

private Runnable myrunnable = new Runnable() { 
    public void run() { 
     .... 
}; 

appellent ensuite votre runnable dans OnTextChanged comme

h.postDelayed(myrunnable, 500); 

voir Handler pour plus d'options/informations

Assurez-vous que vos threads accéderont à la mémoire de manière cohérente!

+0

thx beaucoup, ça marche bien – Nanis

Questions connexes