Android-Suchfunktionen in deine App integrieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Compose ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Hier erfahren Sie, wie Sie eine Suchfunktion in Compose hinzufügen.
Die Suche ist eine wichtige Nutzerfunktion auf Android-Geräten. Nutzer müssen in der Lage sein, alle für sie verfügbaren Daten zu durchsuchen, unabhängig davon, ob sich die Inhalte auf dem Gerät oder im Internet befinden. Damit Nutzer eine einheitliche Suchfunktion nutzen können, bietet Android ein Such-Framework, mit dem Sie die Suche für Ihre Anwendung implementieren können.
Abbildung 1: Ein Suchdialogfeld mit benutzerdefinierten Suchvorschlägen.
Das Such-Framework bietet zwei Modi für die Sucheingabe: einen Suchdialog oben auf dem Bildschirm oder ein Such-Widget (SearchView
), das Sie in das Layout Ihrer Aktivität einbetten können. In beiden Fällen unterstützt das Android-System Ihre Suchimplementierung, indem es Suchanfragen an eine bestimmte Aktivität weiterleitet, die Suchvorgänge ausführt. Sie können auch das Suchfeld oder das Such-Widget aktivieren, um Suchvorschläge während der Eingabe anzuzeigen. Abbildung 1 zeigt ein Beispiel für das Suchdialogfeld mit optionalen Suchvorschlägen.
Nachdem Sie das Suchdialogfeld oder das Such-Widget eingerichtet haben, können Sie Folgendes tun:
- Aktivieren Sie die Sprachsuche.
- Suchvorschläge basierend auf den letzten Nutzeranfragen bereitstellen
- Benutzerdefinierte Suchvorschläge bereitstellen, die den tatsächlichen Ergebnissen in Ihren Anwendungsdaten entsprechen
- Suchvorschläge für Ihre Anwendung im systemweiten Schnellsuchefeld anbieten
Hinweis: Das Suchframework bietet keine APIs zum Durchsuchen Ihrer Daten. Für die Suche müssen Sie APIs verwenden, die für Ihre Daten geeignet sind. Wenn Ihre Daten beispielsweise in einer SQLite-Datenbank gespeichert sind, verwenden Sie die android.database.sqlite
-APIs, um Suchvorgänge auszuführen.
Außerdem gibt es keine Garantie dafür, dass ein Gerät eine spezielle SUCH-Taste bietet, mit der die Suchoberfläche in Ihrer Anwendung aufgerufen wird. Wenn Sie das Suchdialogfeld oder eine benutzerdefinierte Oberfläche verwenden, müssen Sie in Ihrer Benutzeroberfläche eine Schaltfläche zum Aktivieren der Suchoberfläche einfügen. Weitere Informationen finden Sie unter Suchdialog aufrufen.
Auf den folgenden Seiten wird beschrieben, wie Sie das Android-Framework verwenden, um die Suche zu implementieren:
- Suchoberfläche erstellen
- So richten Sie Ihre Anwendung für die Verwendung des Suchdialogfelds oder des Such-Widgets ein.
- Suchvorschläge anhand der letzten Suchanfragen hinzufügen
- Vorschläge auf Grundlage zuvor verwendeter Anfragen machen.
- Benutzerdefinierte Vorschläge hinzufügen
- Vorschläge auf Grundlage benutzerdefinierter Daten aus Ihrer Anwendung bereitstellen und im systemweiten Schnellsuchefeld anbieten.
- Suchkonfiguration
- Ein Referenzdokument für die durchsuchbare Konfigurationsdatei. In den anderen Dokumenten wird die Konfigurationsdatei auch im Hinblick auf bestimmte Verhaltensweisen beschrieben.
Nutzerdaten schützen
Wenn Sie die Suche in Ihrer Anwendung implementieren, müssen Sie Maßnahmen ergreifen, um die Privatsphäre des Nutzers zu schützen. Viele Nutzer betrachten ihre Aktivitäten auf ihrem Smartphone, einschließlich Suchanfragen, als private Informationen. Um die Privatsphäre der Nutzer zu schützen, müssen Sie die folgenden Grundsätze einhalten:
- Senden Sie keine personenbezogenen Daten an Server. Wenn dies erforderlich ist, protokollieren Sie sie nicht.
Personenbezogene Daten sind alle Informationen, die Ihre Nutzer persönlich identifizieren können, z. B. Namen, E‑Mail-Adressen, Abrechnungsinformationen oder andere Daten, die vernünftigerweise mit solchen Informationen verknüpft werden können. Wenn Ihre Anwendung die Suche mithilfe eines Servers implementiert, sollten Sie keine personenbezogenen Daten zusammen mit den Suchanfragen senden. Wenn Sie beispielsweise nach Unternehmen in der Nähe einer Postleitzahl suchen, müssen Sie nicht auch die Nutzer-ID senden, sondern nur die Postleitzahl. Wenn Sie personenbezogene Daten senden müssen, sollten Sie sie nicht protokollieren. Wenn Sie sie protokollieren müssen, schützen Sie diese Daten sehr sorgfältig und löschen Sie sie so schnell wie möglich.
- Nutzern die Möglichkeit geben, ihren Suchverlauf zu löschen.
Das Such-Framework hilft Ihrer Anwendung, kontextbezogene Vorschläge zu machen, während der Nutzer tippt. Manchmal basieren diese Vorschläge auf früheren Suchanfragen oder anderen Aktionen, die der Nutzer in einer früheren Sitzung ausgeführt hat. Ein Nutzer möchte möglicherweise nicht, dass frühere Suchanfragen anderen Gerätenutzern angezeigt werden. Wenn Ihre Anwendung Vorschläge anzeigt, die frühere Suchaktivitäten offenbaren können, müssen Sie dem Nutzer die Möglichkeit geben, seinen Suchverlauf zu löschen. Wenn Sie SearchRecentSuggestions
verwenden, können Sie die Methode clearHistory()
aufrufen. Wenn Sie benutzerdefinierte Vorschläge implementieren, müssen Sie in Ihrem Contentanbieter eine ähnliche Methode zum Löschen des Verlaufs bereitstellen, die der Nutzer ausführen kann.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-08-26 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-26 (UTC)."],[],[],null,["Try the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to add search functionality in Compose. \n[Search bar →](/develop/ui/compose/components/search-bar) \n\nSearch is a core user feature on Android. Users must be able\nto search any data that is available to them, whether the content is located on the device or\nthe internet. To help create a consistent search experience for users, Android provides a\nsearch framework that helps you implement search for your application. \n\n**Figure 1.** A search dialog with custom\nsearch suggestions.\n\nThe search framework offers two modes of search input: a search dialog at the top of the\nscreen or a search widget ([SearchView](/reference/android/widget/SearchView)) that you can embed in your activity\nlayout. In either case, the Android system assists your search implementation by\ndelivering search queries to a specific activity that performs searches. You can also enable\nthe search dialog or widget to provide search suggestions as the user types. Figure 1 shows an\nexample of the search dialog with optional search suggestions.\n\nOnce you set up either the search dialog or the search widget, you can do the following:\n\n- Enable voice search.\n- Provide search suggestions based on recent user queries.\n- Provide custom search suggestions that match actual results in your application data.\n- Offer your application's search suggestions in the system-wide Quick Search Box.\n\n**Note** : The search framework does *not* provide APIs to\nsearch your data. To perform a search, you need to use APIs appropriate for your data. For example,\nif your data is stored in an SQLite database, use the [android.database.sqlite](/reference/android/database/sqlite/package-summary)\nAPIs to perform searches.\n\n\u003cbr /\u003e\n\n\nAlso, there is no guarantee that a device provides a dedicated SEARCH button that invokes the\nsearch interface in your application. When using the search dialog or a custom interface, you\nmust provide a search button in your UI that activates the search interface. For more\ninformation, see [Invoke the search\ndialog](/develop/ui/views/search/search-dialog#InvokingTheSearchDialog).\n\nThe following pages show you how to use Android's framework to implement search:\n\n**[Create a search interface](/develop/ui/views/search/search-dialog)**\n: How to set up your application to use the search dialog or search widget.\n\n**[Add recent query\nsuggestions](/develop/ui/views/search/adding-recent-query-suggestions)**\n: How to provide suggestions based on queries previously used.\n\n**[Add custom suggestions](/develop/ui/views/search/adding-custom-suggestions)**\n: How to provide suggestions based on custom data from your application and offer them\n in the system-wide Quick Search Box.\n\n**[Searchable configuration](/develop/ui/views/search/searchable-config)**\n: A reference document for the searchable configuration file. The other\n documents also discuss the configuration file in terms of specific behaviors.\n\nProtect user privacy\n\nWhen you implement search in your application, take steps to protect the user's\nprivacy. Many users consider their activities on their phone---including searches---to\nbe private information. To protect users' privacy, abide by the following\nprinciples:\n\n- **Don't send personal information to servers‐and if you must, don't log it.**\n\n Personal information is any information that can personally identify your users, such as their\n names, email addresses, billing information, or other data that can be reasonably linked to such\n information. If your application implements search with the assistance of a server, avoid sending\n personal information along with the search queries. For example, if you are searching for businesses\n near a ZIP code,\n you don't need to send the user ID as well; send only the ZIP code to the server. If you must\n send personal information, avoid logging it. If you must log it, protect that data\n very carefully and erase it as soon as possible.\n- **Provide users with a way to clear their search history.**\n\n The search framework helps your application provide context-specific suggestions while the user\n types. Sometimes these\n suggestions are based on previous searches or other actions taken by the user in an earlier\n session. A user might not want previous searches to be revealed to other device users. If your\n application provides suggestions that\n can reveal previous search activities, implement a way for the user to clear their\n search history. If you are using [SearchRecentSuggestions](/reference/android/provider/SearchRecentSuggestions),\n you can call the\n [clearHistory()](/reference/android/provider/SearchRecentSuggestions#clearHistory())\n method. If you are implementing custom suggestions, you need to provide a similar \"clear history\"\n method in your content provider that the user can execute."]]