SearchView Filtern und Festlegen von Vorschlägen

9

Ich bin sehr neu in SearchView . Ich brauche eine Funktionalität, wo ich eine ActionBar habe, für die ich Search habe. Wenn ich auf Suchen klicke, sollten die Vorschläge in einer Liste unterhalb des Suchfelds angezeigt werden.

Was ich bisher gemacht habe: Suche in menu.xml hinzugefügt und den Code in onCreateOptionsMenu() geschrieben, wo ich das SearchView initialisiere und setSuggestionsAdapter auch setOnQueryTextListener implementiere.

Ergebnis: Ich gebe die App ein, klicke auf Suchsymbol, es zeigt die Vorschläge an. Ich tippe einen Buchstaben und sortiert die passenden aus. Ich tippe 2. Buchstaben, es zeigt keine Vorschläge. Außerdem schließe ich die Suche und öffne sie erneut, die Tastatur ist geöffnet, aber die Vorschläge in der Liste werden nicht angezeigt.

Was ich brauche: Filtere nach vom Benutzer eingegebenen Zeichen. Auch wenn es mehr als ein Zeichen ist. Vorschläge immer anzeigen, entweder eins mit allen Listenelementen oder diejenigen, die nach Benutzertyp sortiert sind.

Ich habe in der SearchView-Klasse von Android gesehen, dass sie den Text auf leer setzen und auch die Vorschläge verwerfen. Aber ich will das nicht.

Ich stecke hier fest und weiß nicht weiter. Bitte hilf mir. Hier ist mein Adapter Code:

%Vor%

Code in meiner Aktivität im Zusammenhang mit dem Menü, in dem ich eine Suchansicht habe:

%Vor%     
Lavanya 06.11.2014, 17:56
quelle

3 Antworten

2

Es scheint mir, dass ein Teil des Problems in der Abwesenheit der Methode getItem () liegt.

Wenn Sie sich den Quelltext des Cursor-Adapters ansehen, holt getItem () die Daten vom Cursor und nicht von Ihrer gefilterten Liste, damit er die Daten aus Ihrer gefilterten Liste bekommt!

Versuchen Sie Folgendes:

%Vor%

Ich habe vergessen hinzuzufügen, Sie müssen dies auch ändern:

%Vor%

Und um alles zu schließen, fügen Sie zuerst das createOptions-Menü hinzu:

%Vor%

fügen Sie das dann onSuggestionClick hinzu:

%Vor%

Ein bisschen Erklärung. Wenn Sie setIconified aufrufen, wird der Text Ihrer searchView entweder gelöscht oder in Abhängigkeit vom Standardstatus ausgeblendet. Was wir dort gemacht haben, wurde als Standardzustand auf "iconified" gesetzt. Wenn wir also die setIconified-Methode aufrufen, wird der Text gelöscht und die Ansicht minimiert!

    
jvrodrigues 12.11.2014, 13:03
quelle
2

Hallo Ich habe einige Probleme mit Ihrem Code gefunden. Bitte versuche meinen Weg. Ersetze publishResults of ExampleAdapter

%Vor%

AND

%Vor%     
Imtiyaz Khalani 10.11.2014 07:00
quelle
0

Versuchen Sie, den zu filternden Suchwert zu übergeben, selbst wenn er leer ist:

%Vor%

Setzen Sie die Standardliste auf den Adapter, wenn die Suche nicht übereinstimmt oder der Suchwert leer ist:

%Vor%     
Haresh Chhelana 17.11.2014 04:30
quelle