Ich möchte RecyclerView
durchsuchen, ich habe List<BaseOfCards>
(BaseOfCards ist meine Getter & amp; Setter-Klasse)
Mein RecyclerViewAdapter :
Ich füge SearchView meinem Menü hinzu und initialisiere es in MainActivity :
%Vor% Was muss ich als nächstes tun? Machen Sie meinen RecyclerViewAdapter implement Filterable
oder was? Oder machen Sie einfach die Klasse filter
in * RecyclerViewAdapter ** und rufen Sie sie einfach über meine MainActivity auf?
Ich habe mein Problem gelöst
Machen Sie meine Klasse RecyclerViewAdapter implements Filterable
Fügen Sie die Zeile private List<BaseOfCards> orig;
Fügen Sie die Methode getFilter
in RecyclerViewAdapter
Machen Sie MainActivity implements SearchView.OnQueryTextListener
und ändern Sie die Methode onQueryTextChange
:
Unter Verwendung einer Autocompletetextview oder eines Editiertext behandelte ich diese wie folgt wo
%Vor%ist die initiale Listeneintragsinstanz und.
%Vor% ist die Instanz, die zum Anzeigen von Elementen verwendet wird. Seit dem ersten Mal, wenn die Filterergebnisse nicht null sind, ist die mItems
-Instanz gleich der filteredIt
-Instanz (wodurch die ursprüngliche Liste verloren geht) und dann mit dem publishResults
-Methodenrecht Bevor mItems
die ursprünglichen Werte verliert, setze ich sie mit der übergebenen Instanz originallist
gleich. Hoffe es hilft jemandem
Ich möchte ololoking antworten.
In MainActivity
sollten wir auch den nächsten Code hinzufügen, damit es funktioniert:
Danke ololoking für deine Antwort. Es hat mir geholfen.
Von dem Zeitpunkt an, an dem die andere positive Antwort erfolgte, habe ich jetzt einen schnellen Async-Filter mit AsyncTask
in meinem FlexibleAdapter Bibliothek, Leistung ist sehr gut mit großen Listen, auch Animationen!
Der Adapter ist konfigurierbar, um Eigenschaften im Filterergebnis zu aktivieren / deaktivieren, um die Geschwindigkeit bei Bedarf zu erhöhen. Ein weiterer großer Vorteil ist auch, dass die Schnittstelle immer noch auf den Benutzer reagiert.
Test in meinem Samsung S3 mit Android 6: mit einer Startliste von 10.450 Elementen, ab dem Start des Hintergrundprozesses dauert es ~ 1s, um ein Zeichen zu filtern und 3.890 Elemente auszuwählen.
Ich habe auch eine Wiki-Seite mit allen Details gemacht Filter mit dem Adapter zu verwenden.
Tags und Links android android-recyclerview searchview recycler-adapter