Nanis Posté(e) 29 juillet 2010 Share Posté(e) 29 juillet 2010 Bonjour J'ai une multiAutocompleteTextView dans laquelle je charge la liste de l'adapter avec un appel serveur. C'est àdire que la personne écrit 3 lettres, je les récupère, fais un appel serveur, et lui propose une liste par rapport à ce qu'elle à mis. J'aimerai pouvoir temporiser cet appel. C'set à dire que si la personne écrit plus de 3 lettres, ne pas faire d'appels à chaque lettres, mais juste à la dernière taper (en comptant que si il ne se passe rien pendant 500 ms, alors c'est la dernière) J'ai donc mis un handler en place pour faire ça. Mais cela ne fonctionne pas :/. il ne fait plus l'appel, et quand il le fait, il le fait quand même à chaque lettres tapées Mon code Dans le OnCreate : searchZone.setOnItemClickListener(this); // lISTENER key pressed on ZoneOK+multiauocompletetextview searchZone.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { [...] } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int count, int after) { try { if (s.length() >= searchZone.getThreshold()) { try{ timerHandler.removeCallbacks(callHostToLoadSuggest); }catch(Exception e){ timerHandler = new Handler(); } // Display Suggestions search_pattern = searchZone.getText().toString(); timerHandler.postDelayed(callHostToLoadSuggest, 500); } catch (Exception e) { Alerts.showAlert(e.toString(), HeaderMailDisplayActivity.this, true); // TODO Auto-generated catch block e.printStackTrace(); } } }); Le Runnable : final Runnable callHostToLoadSuggest = new Runnable() { public void run() { displaySuggest(search_pattern); }}; Je ne comprend pas trop ce qui ne vas pas, quelqu'un saurai me dire ce qui cloche ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 1 septembre 2010 Auteur Share Posté(e) 1 septembre 2010 J'ai toujours le même soucis, personne ne saurai m'aider ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 1 septembre 2010 Share Posté(e) 1 septembre 2010 Regarde bien que le Handler soit vide de callback avant le postDelayed Essaye de mettre des breakpoint pour tracer :o Quand tu dis "il ne fait plus l'appel ou quand il le fait ...", c'est quand tu changes quoi ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 1 septembre 2010 Auteur Share Posté(e) 1 septembre 2010 je ne changes rien. Il ne fait pas l'appel quand je tape les caractères, suffit que je fasse un appuie sur la touche qui efface le dernire caractère pour qu'il se mettent à faire dse appels à chaque lettres Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 1 septembre 2010 Auteur Share Posté(e) 1 septembre 2010 Il semblerai que certaines fois il ne passe pas dans l'adapter de la liste. Ce qui forcément entraine qu'il ne l'affiche pas. Cependant je n'arrive pas à déterminer pourquoi il n'y passe pas (j'ai vérifié, la liste est bonne, quand je crée l'adapter et il apsse bien sur la ligne "searchZone.setAdapter(adapter); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 3 septembre 2010 Share Posté(e) 3 septembre 2010 Qu'entends-tu par "il ne passe pas" ? Vide-tu ton adapter à chaque fois ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.