Durchsuchen Sie RecyclerView mit Searchview

7

Ich möchte RecyclerView durchsuchen, ich habe List<BaseOfCards> (BaseOfCards ist meine Getter & amp; Setter-Klasse) Mein RecyclerViewAdapter :

%Vor%

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?

    
Ololoking 24.02.2015, 13:51
quelle

4 Antworten

19

Ich habe mein Problem gelöst

  1. Machen Sie meine Klasse RecyclerViewAdapter implements Filterable

  2. Fügen Sie die Zeile private List<BaseOfCards> orig;

  3. hinzu
  4. Fügen Sie die Methode getFilter in RecyclerViewAdapter

    hinzu %Vor%
  5. Machen Sie MainActivity implements SearchView.OnQueryTextListener und ändern Sie die Methode onQueryTextChange :

    %Vor%
Ololoking 24.02.2015, 22:28
quelle
0

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

%Vor%     
Nasz Njoka Sr. 06.11.2015 10:57
quelle
0

Ich möchte ololoking antworten. In MainActivity sollten wir auch den nächsten Code hinzufügen, damit es funktioniert:

%Vor%

Danke ololoking für deine Antwort. Es hat mir geholfen.

    
Leontsev Anton 05.06.2016 21:09
quelle
0

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.

    
Davidea 27.07.2016 13:10
quelle