Ich verwende AutoCompleteTextView
, wenn der Benutzer darauf klickt, möchte ich Vorschläge anzeigen, auch wenn es keinen Text enthält - setThreshold(0)
funktioniert aber genauso wie setThreshold(1)
-, sodass der Benutzer mindestens 1 Zeichen eingeben muss, um die Vorschläge anzuzeigen.
android
autocompletetextview
fhucho
quelle
quelle
Antworten:
Dies ist dokumentiertes Verhalten :
Sie können das Dropdown-Menü manuell über anzeigen
showDropDown()
, sodass Sie es möglicherweise jederzeit anzeigen können. Oder UnterklasseAutoCompleteTextView
und ÜberschreibungenoughToFilter()
, wobei dietrue
ganze Zeit zurückgegeben wird.quelle
showDropDown()
funktioniert nicht inafterTextChanged
wann.getText().toString().length()==0
. WARUMHier ist meine Klasse InstantAutoComplete . Es ist etwas zwischen
AutoCompleteTextView
undSpinner
.Verwenden Sie es in Ihrer XML wie folgt:
quelle
<AutoCompleteTextView ... />
zu<your.namespace.InstantAutoComplete ... />
. Ich habe einige Zeit verloren, um das herauszufinden :)androidx.appcompat.widget.AppCompatAutoCompleteTextView
.Einfachster Weg:
Verwenden Sie einfach setOnTouchListener und showDropDown ()
quelle
Destils Code funktioniert einfach hervorragend, wenn es nur ein
InstantAutoComplete
Objekt gibt. Bei zwei funktionierte es allerdings nicht - keine Ahnung warum. Aber wenn ichshowDropDown()
(genau wie von CommonsWare empfohlen) Folgendes einfügeonFocusChanged()
:es löste das Problem.
Es sind nur die beiden Antworten, die richtig kombiniert wurden, aber ich hoffe, es kann jemandem Zeit sparen.
quelle
Der Adapter führt zunächst keine Filterung durch.
Wenn die Filterung nicht durchgeführt wird, ist die Dropdown-Liste leer.
Daher müssen Sie möglicherweise zunächst die Filterung starten.
Dazu können Sie
filter()
nach dem Hinzufügen der Einträge Folgendes aufrufen :quelle
Sie können onFocusChangeListener verwenden.
quelle
Die obige Antwort von Destil funktioniert fast, hat aber einen subtilen Fehler. Wenn der Benutzer das Feld zum ersten Mal fokussiert, funktioniert es. Wenn er das Feld jedoch verlässt und dann zum Feld zurückkehrt, wird das Dropdown-Menü nicht angezeigt, da der Wert von mPopupCanBeUpdated ab dem Zeitpunkt des Ausblendens immer noch falsch ist. Das Update besteht darin, die onFocusChanged-Methode in Folgendes zu ändern:
quelle
So erstellen Sie CustomAutoCompleteTextView 1. überschreiben Sie die Methode setThreshold, ausreichendToFilter, onFocusChanged
quelle
Versuch es
quelle
Rufen Sie diese Methode einfach beim Berühren auf oder klicken Sie auf das Ereignis von autoCompleteTextView oder wo Sie möchten.
quelle
Das hat bei mir funktioniert, Pseudocode:
quelle
Fügen Sie dies einfach in Ihre onCreate-Methode in Java ein
Und das zu deiner XML-Datei ...
Und erstellen Sie ein Array in string.xml unter Werte ...
Und du bist gut zu gehen.
quelle
Sieben Jahre später, Jungs, bleibt das Problem das gleiche. Hier ist eine Klasse mit einer Funktion, die dieses dumme Popup zwingt, sich unter allen Bedingungen zu zeigen. Sie müssen lediglich einen Adapter für Ihre AutoCompleteTextView festlegen, einige Daten hinzufügen und die
showDropdownNow()
Funktion jederzeit aufrufen .Dank an @David Vávra. Es basiert auf seinem Code.
quelle
Überprüfen Sie auf FocusChangeListener
Trimmen Sie in Ihrem Filter einfach diesen Wert:
und es werden alle Vorschläge angezeigt, wenn Sie sich auf diese Ansicht konzentrieren.
quelle