3 votes

AutoCompleteTextView recherche une partie du mot au lieu du mot complet

J'ai un AutoCompleteTextView, et ça fonctionne bien, jusqu'à ce que j'ajoute un espace à mon entrée. Si j'avais, disons, une liste de nombreux événements historiques (Bataille d'Angleterre (1940), Bataille des Ardennes (1944), [insérer beaucoup de batailles], Marche fatale de Napoléon (1812), [insérer beaucoup d'autres événements historiques]).

Lorsque je saisis "Bataille" ou "bataille", j'obtiens une liste de toutes les batailles (bien qu'il semble y avoir un maximum), et lorsque je saisis "angleterre", la "Bataille d'Angleterre (1940)" apparaît dans les résultats.

Cependant, lorsque je saisis "1940", la liste est vide, pour la même raison que lorsque je saisis "itain" je n'obtiens aucun résultat. Je suppose que l'espace est une sorte de séparateur ou d'ancre. Si je mets 1940 devant la chaîne de caractères (comme "1940 - Bataille d'Angleterre") et que je saisis "19", j'obtiens tous les résultats commençant par "19".

Est-il possible d'avoir l'autocomplétion de AutoCompleteTextView même lorsqu'il y a un caractère devant le mot/phrase/partie recherché(e)? (Ainsi, lorsque je saisis "1940", "Bataille d'Angleterre (1940)" fera partie des résultats?)

5voto

Hardik4560 Points 3097

Utilisez un Adapter personnalisé qui implémente Filterable, dans la méthode getFilter(). Utilisez String.contains() pour votre besoin

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