Neue Aktivität von SearchView starten

9

Ich habe 2 Aktivitäten: die erste hat eine Aktionsleiste mit einer Suchansicht, die zweite sollte die Ergebnisse der Suchanfrage anzeigen.

androidmanifest:

%Vor%

suchbare.xml

%Vor%

Suchaktivität

%Vor%

ErgebnisseAktivität:

%Vor%

Das Problem ist, dass nach dem Eingeben einer Abfrage in die Suchansicht nichts passiert. Keine Fehler, nichts. Wie kann ich die Ergebnisaktivität öffnen, nachdem die Suchanfrage in die Suchaktivität eingegeben wurde?

    
Maarten 09.04.2015, 14:02
quelle

2 Antworten

23

Diese Antwort ist etwas spät, aber ich denke, dass sie für zukünftige Zuschauer nützlich sein wird. Das Dilemma scheint von der Mehrdeutigkeit des Android SearchView-Lernprogramms zu kommen. Das Szenario, das sie abdecken, geht davon aus, dass Sie es sein werden Anzeigen der Ergebnisse in derselben Aktivität, in der sich das SearchView befindet. In einem solchen Szenario würde das Aktivitäts-Tag in der AndroidManifest.xml -Datei in etwa so aussehen:

%Vor%

Um die Ergebnisse in derselben Aktivität zu bearbeiten, müssten Sie die onNewIntent -Methode überschreiben:

%Vor%

In einer Situation, in der wir die Ergebnisse in einer anderen Aktivität anzeigen möchten, müssen wir jedoch den Intent-Filter und das Meta-Tag in die Ergebnisaktivität einfügen und ein neues Meta-Tag für die SearchView-Aktivität einführen. Daher sehen unsere Aktivitäten in der Datei AndroidManifest.xml so aus:

%Vor%

Aktivieren Sie dann in der onCreateOptionsMenu-Methode von MainActivity die SearchView (vorausgesetzt, Sie fügen der ActionBar das SearchView hinzu). Statt getComponentName() im getSearchableInfo () -Methodenaufruf des SearchManager zu verwenden, instanziieren wir ein neues ComponentName-Objekt unter Verwendung des MainActivity-Kontexts und der SearchResultsActivity-Klasse:

%Vor%

Schließlich können wir in unserer SearchResultsActivity-Klasse in der onCreate-Methode die Suchergebnisse behandeln:

%Vor%

Vergessen Sie nicht, die Resource-Datei searchable.xml zu erstellen und fügen Sie Ihrem Layout das SearchView hinzu.

searchable.xml (res / xml / searchable.xml; erstellt ggf. einen XML-Ordner unter res):

%Vor%

Layout (Beispiel zum Hinzufügen des SearchView zu ActionBar als Menüelement):

%Vor%

Ressourcen:

chRyNaN 19.08.2015, 17:38
quelle
0

Ohne Ihren Aktivitätscode zu sehen, würde ich vorschlagen, dass Sie diesen Ansatz versuchen - vorausgesetzt, Sie haben alle Dateien wie oben beschrieben erstellt;

In Ihrer Ergebnisaktivität

%Vor%

Denken Sie daran, dass dies die Aktivität ist, bei der Ihre Daten durchsuchbar gemacht werden sollen:

Sie müssen die Schnittstelle SearchView.OnQueryTextListener in derselben Aktivität implementieren:

%Vor%

productFilterAdapter ist der Adapter, den Sie zuvor erstellen müssen.

Es sollte filterbare Schnittstelle implementieren. Ich hoffe das hilft.

Wenn Sie weitere Hilfe benötigen, lassen Sie es mich wissen. Viel Glück

    
Eenvincible 09.04.2015 14:30
quelle

Tags und Links