Aller au contenu

Optimisation autocompletion


Recommended Posts

Bonjour à tous,

Je suis confronté à un problème.

Je souhaite permettre à l'utilisateur de profiter de l'autocompletion sur un ou plusieurs champs d'une bdd SQLite contenant environ 9000 lignes.

J'ai tenté plusieurs expériences, mais toutes se révèlent être extrêmement lentes.

Le dernier essai utilise directement un AutoCompleteTextView, avec un adapteur prenant en argument un String array d'environ 9000 strings de qqs caractères (extraits de la bdd auparavant). Malgré tout, l'autocompletion est vraiment trop lente pour être utilisable.

Il faudrait je pense un système qui attende par exemple d'avoir entré 2 caractères au moins, puis faire des recherches uniquement sur le sous-ensemble de données filtrées lorsqu'un nouveau caractère est entré.

Mais j'avoue être un peu perdu, je ne sais pas trop comment optimiser ça pour que ça devienne utilisable...

Donc si vous avez des suggestions ou des solutions, elles sont les bienvenues !

Merci !

PS: c'est pour l'instant pour android 1.5, donc pas d'utilisation du moteur google search dans l'application possible...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

Je suis confronté à un problème.

Je souhaite permettre à l'utilisateur de profiter de l'autocompletion sur un ou plusieurs champs d'une bdd SQLite contenant environ 9000 lignes.

J'ai tenté plusieurs expériences, mais toutes se révèlent être extrêmement lentes.

Le dernier essai utilise directement un AutoCompleteTextView, avec un adapteur prenant en argument un String array d'environ 9000 strings de qqs caractères (extraits de la bdd auparavant). Malgré tout, l'autocompletion est vraiment trop lente pour être utilisable.

Il faudrait je pense un système qui attende par exemple d'avoir entré 2 caractères au moins, puis faire des recherches uniquement sur le sous-ensemble de données filtrées lorsqu'un nouveau caractère est entré.

Mais j'avoue être un peu perdu, je ne sais pas trop comment optimiser ça pour que ça devienne utilisable...

Donc si vous avez des suggestions ou des solutions, elles sont les bienvenues !

Merci !

PS: c'est pour l'instant pour android 1.5, donc pas d'utilisation du moteur google search dans l'application possible...

c'est bizarre moi j'ai une appli avec autocompletion qui ne fonctionne qu'a partir de 2 caractere et pourtant je n'y ai rien touché

Lien vers le commentaire
Partager sur d’autres sites

Hé bien, ca tombe bien que tu poses la question, on était justement en pleine réflexion sur le même sujet dans ce fil: https://www.frandroid.com/forum/viewtopic.php?id=4502

Le but étant de trouver une amélioration de l'autocompletetextview ( ou une recherche du genre la liste de contacts avec filtre.

Je regarde à cela ce soir avec Feust et on partagera nos idées dans ce fil.

Lien vers le commentaire
Partager sur d’autres sites

Ok,

De mon cote hier soir finalement j'ai reussi a faire qqch avec des requetes SQL et une listview transformee, un edittext, et un peu de multithreading. Ca marche pas trop mal mais reste encore buggue dans certains cas. D'un autre cote, c'est tout nouveau pour moi !

Reste que j'aimerais maintenant surligner la partie tapee dans l'edittext sur l'affichage des resultats. C'est plus pratique je trouve pour s'y retrouver.

Je donne plus d'infos ce soir.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...