Ich habe eine Listenansicht in Android erstellt und möchte Bearbeitungstext über der Liste hinzufügen. Wenn der Benutzer Text eingibt, wird die Liste nach Benutzereingaben gefiltert
Kann mir jemand bitte sagen, ob es eine Möglichkeit gibt, den Listenadapter in Android zu filtern?
Antworten:
Fügen Sie einen EditText über Ihrer Listenansicht in die XML-Layoutdatei ein. Und in Ihrer Aktivität / Fragment ..
Grundsätzlich müssen Sie Ihrem Bearbeitungstext einen OnTextChangeListener hinzufügen und innerhalb seiner Rückrufmethode den Filter auf den Adapter Ihrer Listenansicht anwenden.
BEARBEITEN
Um Filter zu Ihrer benutzerdefinierten BaseAdapter Sie "ll Notwendigkeit zu implementieren Filterbare Schnittstelle.
In performFiltering () müssen Sie die Suchabfrage tatsächlich mit Werten in Ihrer Datenbank vergleichen. Das Ergebnis wird an die Methode publishResults () übergeben .
quelle
Implementieren Sie Ihren Adapter Filterbar:
Erstellen Sie dann Ihre Filterklasse:
Auf diese Weise ist Ihr Adapter filterbar. Sie können Filterelemente an den Filter des Adapters übergeben und die Arbeit erledigen. Ich hoffe das wird hilfreich sein.
quelle
Falls sich noch jemand für dieses Thema interessiert, finde ich, dass der beste Ansatz zum Filtern von Listen darin besteht, eine generische Filterklasse zu erstellen und diese mit einigen Basisreflexions- / Generika-Techniken zu verwenden, die im Java Old School SDK-Paket enthalten sind. Folgendes habe ich getan:
Anschließend müssen Sie den Filter nur noch als Elementklasse erstellen (möglicherweise innerhalb des "onCreate" der Ansicht) und dabei Ihre Adapterreferenz, Ihre Liste und die zum Filtern aufzurufende Methode übergeben:
Jetzt fehlt nur noch das Überschreiben der Methode "getFilter" in der Adapterklasse:
Alles erledigt! Sie sollten Ihre Liste erfolgreich filtern - Natürlich sollten Sie Ihren Filteralgorithmus auch so implementieren, dass er Ihre Anforderungen am besten beschreibt. Der folgende Code ist nur ein Beispiel. . Hoffe es hat geholfen, pass auf dich auf.
quelle