2009-10-18 2 views
6

Ich habe versucht, meine App die integrierte Schnellsuche zu implementieren, ähnlich wie es in ApiDemos '"app/search/invoke Suche" getan wird. Ich habe alles ausprobiert, um verschiedenen Beispielen zu folgen, um den Code genau so zu kopieren, wie er in ApiDemos ist.Android App Suchschaltfläche

Alles, was ich für die ehemalige gefunden habe, waren mit älteren Versionen des SDK betroffen, und einfach nicht funktioniert. Wie für die Sachen, die ich tatsächlich laufen und sehen in ApiDemos arbeiten, habe ich versucht, die folgende

com.example.android.apis.app.SearchInvoke.java 
com.example.android.apis.app.SearchQueryResults.java 
com.example.android.apis.app.SearchSuggestionSampleProvider.java 

res/layout/search_invoke.xml 
res/layout/search_query_results.xml 
res/values/arrays.xml 
res/values/strings.xml 
res/xml/searchable.xml 

... and everything under "Search Samples" in AndroidManifest.xml 

Dieses Kopieren wird mir einen Blick zu kopieren, die genau wie das aussieht ich mit Blick auf bin, wenn ApiDemos läuft, aber Wenn ich auf die Suchschaltfläche klicke, öffnet Android im Schnellsuchfeld immer nur ein Browserfenster mit Google-Suchergebnissen für die angegebene Suchanfrage. Ich kann einfach nicht die kritische Komponente in ApiDemos finden, die Android sagt, dass ich meinen eigenen benutzerdefinierten Code für die Bearbeitung der Suchanfrage verwenden möchte.

Ich würde wirklich etwas Hilfe in dieser Angelegenheit schätzen. Sowohl die Dokumentation als auch andere Online-Ressourcen scheinen diesbezüglich sehr mangelhaft.

Danke.

Antwort

10

Als Referenz, vier Monate (und Gott weiß, wie viele Versuche) später, habe ich den Teil der Dokumentation, die ich verpasst habe, gefunden, die das ganze Suchfeld verhalten hatte Browsersuchresultate anstelle von sie an meine eigene Tätigkeit weitergeben. Es kommt alles auf ein wenig Notiz gefunden here:

Beachten Sie, dass alle Benutzer sichtbare Strings müssen in Form von „@string“ Referenzen zur Verfügung gestellt werden. Hartcodierte Zeichenfolgen, die nicht lokalisiert werden können, funktionieren in Suchmetadaten nicht ordnungsgemäß.

+0

Wow, danke. Das ist genau das, was mein Problem behoben hat - es hat keine hartcodierten Zeichenfolgenwerte akzeptiert, während ich getestet habe. Ich habe es einfach konvertiert, um refs in strings.xml zu verwenden, und es funktioniert nicht. – DustinB

+0

@David Vielen Dank. Ich war mehr als einen Tag in der Klemme, nur weil ich Streicher programmiert hatte. Nochmals vielen Dank. :) – FireAndIce

1

Versuchen Sie zuerst this zu lesen. Wenn das nicht hilft, können Sie versuchen, das search example aus einem meiner Bücher zu betrachten - dieses Beispiel integriert sich in das Schnellsuchfeld und vielleicht gibt es Ihnen weitere Hinweise.

+0

Hallo. Vielen Dank für Ihren Kommentar, aber weder die Ressourcen, mit denen Sie verknüpft sind, noch der von Ihnen bereitgestellte Beispielcode scheinen für mich zu funktionieren. Die Suchschaltfläche ruft die globale Suche ui auf, was ich will, aber das Tippen von irgendetwas führt nur zu den Standardvorschlägen und das Drücken der Suchschaltfläche öffnet immer eine Webansicht. Ich möchte den Klick auf die Suchschaltfläche erfassen und eine eigene Ergebnisansicht generieren. Ich brauche nicht einmal einen Vorschlagsanbieter, wenn ich die Suche nur funktionieren lassen kann. Sicherlich sollte das ziemlich machbar sein ...? –

+0

Nein, es ist nicht machbar, kurz vor dem Ändern der Firmware, oder vielleicht schreiben Sie eine Ersatz-Home-App mit einem Suchfeld, das sich so verhält, wie Sie wollen. – CommonsWare

+0

Dann ist das nicht das, was der Markt tut? Oder die Suche Invoke Demo in ApiDemos. Sie sind Beispiele für Suchvorgänge, die beim Klicken auf die Suchschaltfläche des Geräts angezeigt werden. Wenn die Schaltfläche in der angezeigten Ansicht angeklickt wird, wird eine eigene Ergebnisansicht generiert, anstatt eine Webansicht mit normalen Google-Suchergebnissen zu öffnen ...? –

0

ich falsch war, bevor ... die SDK-Dokumentation eine thurough Erklärung in der Dokumentation für SearchManager hat, die ich vorschlagen, dass Sie auf einen Blick. Darüber hinaus, wie CommonsWare erwähnt, ist die blog entry auch eine gute Ressource.