J'utilise AutoCompleteTextView
, lorsque l'utilisateur clique dessus, je veux afficher des suggestions même s'il n'a pas de texte - mais setThreshold(0)
fonctionne exactement de la même manière que setThreshold(1)
- donc l'utilisateur doit entrer au moins 1 caractère pour afficher les suggestions.
android
autocompletetextview
fhucho
la source
la source
Réponses:
Il s'agit d' un comportement documenté :
Vous pouvez afficher manuellement le menu déroulant via
showDropDown()
, vous pouvez donc peut-être vous arranger pour l'afficher quand vous le souhaitez. Ou, sousAutoCompleteTextView
- classe et remplacementenoughToFilter()
, en retournanttrue
tout le temps.la source
showDropDown()
ne fonctionne pasafterTextChanged
quand.getText().toString().length()==0
. WHYYYVoici ma classe InstantAutoComplete . C'est quelque chose entre
AutoCompleteTextView
etSpinner
.Utilisez-le dans votre xml comme ceci:
la source
<AutoCompleteTextView ... />
à<your.namespace.InstantAutoComplete ... />
. J'ai perdu du temps à comprendre :)androidx.appcompat.widget.AppCompatAutoCompleteTextView
.Moyen le plus simple:
Utilisez simplement setOnTouchListener et showDropDown ()
la source
Le code de Destil fonctionne très bien lorsqu'il n'y a qu'un seul
InstantAutoComplete
objet. Cela n'a pas fonctionné avec deux - je ne sais pas pourquoi. Mais quand je metsshowDropDown()
(tout comme CommonsWare conseillé) dansonFocusChanged()
comme ceci:cela a résolu le problème.
Ce ne sont que les deux réponses correctement combinées, mais j'espère que cela permettra à quelqu'un de gagner du temps.
la source
L'adaptateur n'effectue pas de filtrage au départ.
Lorsque le filtrage n'est pas effectué, la liste déroulante est vide.
vous devrez peut-être commencer le filtrage.
Pour ce faire, vous pouvez appeler
filter()
après avoir terminé d'ajouter les entrées:la source
Vous pouvez utiliser onFocusChangeListener;
la source
La réponse de Destil ci-dessus fonctionne presque, mais a un bug subtil. Lorsque l'utilisateur donne le focus au champ pour la première fois, cela fonctionne, mais s'il quitte et retourne au champ, il n'affichera pas la liste déroulante car la valeur de mPopupCanBeUpdated sera toujours fausse à partir du moment où elle a été masquée. Le correctif consiste à changer la méthode onFocusChanged en:
la source
Pour créer CustomAutoCompleteTextView. 1. remplacer la méthode setThreshold, assezToFilter, onFocusChanged
la source
l'essayer
la source
Appelez simplement cette méthode au toucher ou au clic de l'événement autoCompleteTextView ou à l'endroit souhaité.
la source
Cela a fonctionné pour moi, pseudo code:
la source
Collez-le simplement dans votre méthode onCreate en Java
Et ceci dans votre fichier Xml ...
Et créez un tableau dans string.xml sous Values ...
Et vous êtes prêt à partir.
la source
Sept ans plus tard, les gars, le problème reste le même. Voici une classe avec une fonction qui force ce pop-up stupide à se montrer dans toutes les conditions. Tout ce que vous avez à faire est de définir un adaptateur sur votre AutoCompleteTextView, d'y ajouter des données et d'appeler la
showDropdownNow()
fonction à tout moment.Crédits à @David Vávra. C'est basé sur son code.
la source
sur FocusChangeListener, vérifiez
dans votre filtre, coupez simplement cette valeur:
et il affichera toutes les suggestions lorsque vous vous concentrerez sur cette vue.
la source