Bonjour =)
J'avais mis en place il y a quelques semaines la création de formulaires dynamiques sur mon appli. Donc un bouton permet d'ajouter un nouveau formulaire qui est ensuite enregistré dans une base de données, tous ça marche parfaitement.
Dans mon formulaire se trouve un EditText et je souhaiterai que ce dernier gère l'autocomplétion.
Donc en farfouillant sur la toile j'ai pu trouver le "AutocompleteTextView" qui semble nickel pour mon cas. Mais en remplaçant mon EditText par un AutocompleteTextView dans mon xml et dans mon custom ArrayAdapter l'autocomplétion ne fonctionne pas (je n'ai pas oublié le setAdapter, ...et pire même , je me retrouve avec un bug sur mon smartphone que je ne rencontre pas sur l'émulateur..
Si j'entre du texte dans mon champs sur mon smartphone et que je quitte le focus de mon AutoCompleteTextView. Le text saisie dans ce dernier disparait, et lorsque je reclic dans mon AutoCompleteTextView (donc lorsque je reprend le focus), le texte que j'avais saisi réaparait x)
Donc j'ai juste modifié l'EditText par l'AutoCompleteTextView pour tester..et le bug évoqué au dessus apparait à partir des "simples" changement que j'ai fais. Plus de détail en dessous :
Le code avec l'EditText (qui fonctionne nickel dans ce cas..mais sans l'autocomplétion)
Et la mes modfis pour essayer d'utiliser un AutoCompleteTextView à la place :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public class Adaptor_espece_item extends ArrayAdapter<Donnees_espece>{ ... public View getView(final int position, View convertView, ViewGroup parent) { View view = null; if (convertView == null){ ViewHolder.nom = (EditText)view.findViewById(R.id.slide_espece_nom); ViewHolder.nom.addTextChangedListener(new TextWatcher() { ... }); ... view.setTag(ViewHolder); ViewHolder.nom.setTag(liste.get(position)); }else{ view = convertView; ((Holder)view.getTag()).nom.setTag(liste.get(position)); ... } Holder holder = (Holder)view.getTag(); holder.nom.setText(liste.get(position).getT_nom()); ... return view; } static class Holder{ EditText nom; ... }
Où se situe le soucis ? une mécanimque m'échape? il y a un rituel à suivre en plus avec un AutoCompleteTextView ? la vue AutoCompleteTextView n'est peut être pas le plus adapté dans mon cas de figure (listeview dynamique..), quelle serait la meilleur solution alors ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (convertView == null){ ViewHolder.nom = (AutoCompleteTextView)view.findViewById(R.id.slide_espece_nom); ... static class Holder{ AutocompleteTextView nom; ... }
Je peux peut être arriver à mes fins grace au TextWatcher de mon EditText, mais je ne saurais pas trop par ou commencer..
En vous remerciant =)
Partager