Die Suche erstellt neue Aktivitäten in TabActivity

8

Ich möchte eine Anwendung mit Tabs auf Android entwickeln. Gleichzeitig möchte ich, dass die Suchfunktionalität auf einigen Tabs vorhanden ist. Aus diesem Grund habe ich einige Aktivitäten in der Manifestdatei deklariert und zu TabHost hinzugefügt. Aber das Problem ist, dass wenn ich eine Suche mache, es onCreate () -Methode der aktuellen Aktivität aufruft, die sich im Tab-Inhalt befand. Ich möchte, dass der searchManager die onNewIntent () -Methode aufruft, so dass keine neue Aktivität erstellt wird und ich die Suche in vorhandenen Aktivitäten durchführen kann. Ich poste meine Manifest- und TabActivity-Quelldatei, um klarer zu sein:

Teil der Manifestdatei:

%Vor%

Registerkarte Aktivität onCreate-Methode:

%Vor%     
Behlül 05.07.2010, 05:32
quelle

1 Antwort

1

Ich bin mir nicht sicher, ob Sie eine Antwort darauf gefunden haben, aber ich hatte ein damit verbundenes Problem, indem ich versuchte, die Suchoberfläche aus einem Menü einer Tabactivity aufzurufen (dh die Suche sollte unabhängig davon angezeigt werden) Registerkarte ist aktiv), und es wurde nicht angezeigt. Nach einiger Recherche und dem sorgfältigen Lesen des Artikels habe ich festgestellt, dass folgender Absatz:

  

Der Suchdialog ist standardmäßig nicht für jede Aktivität Ihrer Anwendung verfügbar. Der Suchdialog wird Benutzern nur dann angezeigt, wenn sie die Suche aus einem durchsuchbaren Kontext Ihrer Anwendung aufrufen. Ein durchsuchbarer Kontext ist eine Aktivität, für die Sie durchsuchbare Metadaten in der Manifestdatei deklariert haben. Beispielsweise ist die durchsuchbare Aktivität selbst (im obigen Manifest-Snippet deklariert) ein durchsuchbarer Kontext, da sie Metadaten enthält, die die durchsuchbare Konfiguration definieren. Jede andere Aktivität in Ihrer Anwendung ist standardmäßig kein durchsuchbarer Kontext und zeigt daher den Suchdialog nicht an. Wahrscheinlich möchten Sie jedoch den Suchdialog über Ihre anderen Aktivitäten verfügbar machen (und die durchsuchbare Aktivität starten, wenn der Benutzer eine Suche ausführt). Sie können genau das tun.

     

Sie können auch steuern, welche Aktivitäten die Suche auf einer detaillierteren Ebene ermöglichen. Um nur eine einzelne Aktivität als durchsuchbaren Kontext anzugeben, platzieren Sie die Datei mit dem Namen "android.app.default_searchable" innerhalb des jeweiligen Elements (und nicht innerhalb des Elements). Sie können gelegentlich auch mehrere durchsuchbare Aktivitäten erstellen und diese in verschiedenen Kontexten Ihrer Anwendung bereitstellen, indem Sie entweder in jedem Element eine andere durchsuchbare Aktivität deklarieren oder eine standardmäßige durchsuchbare Aktivität für die gesamte Anwendung deklarieren und dann überschreiben ein Element innerhalb bestimmter Aktivitäten. (Sie können dies tun, wenn Sie verschiedene Datensätze durchsuchen möchten, die nicht von derselben durchsuchbaren Aktivität abhängig von der gerade geöffneten Aktivität bearbeitet werden können.)

Kurz gesagt, müssen Sie die Suchmetadaten für die spezifische Aktivität haben, von der Sie onSearchRequested() aufrufen. Nicht nur das, die Metadaten in diesen anderen Aktivitäten sollten den Namen default_searchable haben und die Suchaktivität erwähnen, und nicht die durchsuchbare xml-Datei, so:

%Vor%

Ich habe bemerkt, dass die Suchmetadaten an zwei Stellen falsch sind.

    
Samik R 21.08.2010 04:33
quelle

Tags und Links