Nanis Posted July 29, 2010 Share Posted July 29, 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 ? Link to comment Share on other sites More sharing options...
Nanis Posted September 1, 2010 Author Share Posted September 1, 2010 J'ai toujours le même soucis, personne ne saurai m'aider ? Link to comment Share on other sites More sharing options...
Fluckysan Posted September 1, 2010 Share Posted September 1, 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 ? Link to comment Share on other sites More sharing options...
Nanis Posted September 1, 2010 Author Share Posted September 1, 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 Link to comment Share on other sites More sharing options...
Nanis Posted September 1, 2010 Author Share Posted September 1, 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); Link to comment Share on other sites More sharing options...
Fluckysan Posted September 3, 2010 Share Posted September 3, 2010 Qu'entends-tu par "il ne passe pas" ? Vide-tu ton adapter à chaque fois ? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.