54 votes

Android AutoCompleteTextView avec le filtrage de l’adaptateur personnalisé ne fonctionne pas

J’ai le Custom CustomerAdapter

et `` la mise en page

et sur mon ``

et Client.java

Mais la boîte de suggestion automatique ne filtre pas correctement. par exemple; si je tape dans la boîte de test, les clients commençant par apparaissent!

127voto

Mithun Points 9971

Je dois passer par la méthode getFilter() de l’adaptateur

Voici le code qui a fonctionné pour moi, grâce à sacoskun

58voto

Carl Anderson Points 1085

C’est ma solution. J’ai l’impression qu’il est un peu plus propre (n’utilise pas 3 ArrayLists séparés et déroutants) que celui accepté, et a plus d’options. Cela devrait fonctionner même si l’utilisateur tape backspace, car il ne supprime pas les entrées d’origine `` de (contrairement à la réponse acceptée):

12voto

kavinraj M Points 119

Au lieu de remplacer la méthode dans l’adaptateur, nous pouvons simplement remplacer l’objet userDefined (Customer). Il `` suffit de renvoyer le champ en fonction de ce que vous devez filtrer. Cela a fonctionné pour moi.

Dans mon exemple, je filtre en fonction des noms :

3voto

Dans le code ci-dessus, `` la méthode donne l’exception de modification simultanée.... nous devons modifier le code comme:

2voto

Mehrdad Faraji Points 1902

Peut-être que c’est trop tard, vous n’avez pas besoin de remplacer toutes ces fonctions, la seule fonction à remplacer est :

considérer que je change :

faites attention, vous ne devez pas déclarer de nouveaux ListItems,

étant donné que ArrayAdapter fonctionne avec ses propres mObjects et filtre cette liste et non votre liste d’éléments, Vous devez donc utiliser la fonction getItem pour accéder aux éléments. alors il n’y a aucune raison d’écrire votre ArrayFilter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X