Android - Wie Sie die Schaltfläche "Search" deaktivieren, wie Sie onSearchRequested () implementieren?

8

hat Folgendes überprüft: Wie funktioniert das Klicken auf den Suchknopf des Telefons, um nichts zu tun?

Aber es funktioniert nicht für mich. Hat jemand andere Vorschläge? Vielen Dank. Dem Vorschlag von Phil folgend, den Code entsprechend seiner Antwort zu aktualisieren. Zeigt den Fehler Ссылка

Also habe ich ein Beispielprojekt gemacht. Ich habe das auf zwei verschiedenen Handys getestet, Android Version 2.3.5 und 4.1, ich habe es auch auf Emulator Version 2.2 getestet. Nachdem ich auf den Button show dialog geklickt habe, zeigt es den Fortschrittsdialog an und sollte es auch weiterhin tun. Durch Klicken auf die Schaltfläche Suchen auf den Telefonen und im Emulator wird der Fortschrittsdialog jedoch ausgeblendet. Hier ist die Klasse, und Manifest folgt.

Das aktuelle Verhalten ist, dass beim Klicken auf die Schaltfläche "Suchen" der Fortschrittsdialog verschwindet. Das erwartete oder erforderliche Verhalten besteht darin, die Suchschaltfläche zu deaktivieren, oder ähnlich, wenn das Dialogfeld angezeigt wird und die Suchschaltfläche angeklickt wird. Durch diesen Klick wird der Dialog nicht ausgeblendet.

%Vor%

Meine durchsuchbare XML-Datei befindet sich unter: res / xml / searchable.xml gemäß der angegebenen Referenz. So sieht meine suchbare.xml aus:

%Vor%     
Noman Arain 31.10.2012, 16:22
quelle

4 Antworten

4

BEARBEITEN

Ich bin froh, dass mein Code unten hilfreich war. Mit Ihrer aktualisierten Frage (zusammen mit dem Video) glaube ich jetzt, dass dies die Antwort ist, die Sie brauchen: Verhindern, dass ProgressDialog beim Klicken auf die Suchtaste (Android) beendet wird

- VORBEARBEITEN -

Anstatt onSearchRequested() von onCreate() aufzurufen, müssen Sie Folgendes aufrufen:

%Vor%

Um zu verhindern, dass die Suchschaltfläche die Methode onSearchRequested() verwendet, überschreiben Sie sie und geben false zurück:

%Vor%

Diese Lösung wird direkt in der onSearchRequested-Dokumentation diskutiert:

  

Sie können diese Funktion zum einfachen Starten der Suchoberfläche in verwenden   Antwort auf einen Menüeintrag, eine Suchtaste oder andere Widgets in Ihrem   Aktivität. Wenn nicht übergangen wird, ist der Aufruf dieser Funktion identisch mit   Aufruf von startSearch (null, false, null, false), wodurch die Suche gestartet wird   für die aktuelle Aktivität wie in ihrem Manifest angegeben, siehe   SearchManager.

     

Sie können diese Funktion überschreiben, um eine globale Suche zu erzwingen, z. im   Antwort auf einen dedizierten Suchschlüssel, oder die Suche ganz zu blockieren (durch   einfach wieder falsch).

Ihr AndroidManifest.xml ist ebenfalls unvollständig. Sie müssen zeigen, dass Ihre Activity durchsuchbar ist. Ändern Sie Ihre MainActivity -Deklaration wie folgt:

%Vor%

Beachten Sie, dass @ xml / durchsuchbar eine XML-Referenz in Ihrer apk ist, die die Suche definiert. Diese Ressource wird im Detail hier besprochen.

    
Phil 09.11.2012, 14:28
quelle
0
%Vor%     
Jason Hessley 07.11.2012 16:47
quelle
0
%Vor%

Ссылка

    
Arham 07.11.2012 17:38
quelle
0

Sie können das Suchschlüsselereignis in Ihrer Aktivität nicht unterbrechen.

Sie müssen das Suchschlüsselereignis in Ihrem Dialog unterbrechen.

%Vor%     
landry 08.11.2012 02:20
quelle

Tags und Links