Интегрируйте функции поиска Android в свое приложение
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Попробуйте способ «Композиции»
Jetpack Compose — рекомендуемый набор инструментов для разработки пользовательского интерфейса для Android. Узнайте, как добавить функцию поиска в Compose.
Поиск — ключевая функция Android. Пользователи должны иметь возможность искать любые доступные им данные, независимо от того, где они находятся: на устройстве или в интернете. Чтобы обеспечить пользователям единообразный опыт поиска, Android предоставляет фреймворк, который помогает реализовать поиск в вашем приложении.

Рисунок 1. Диалоговое окно поиска с пользовательскими предложениями поиска.
Фреймворк поиска предлагает два режима ввода поисковых данных: диалоговое окно поиска в верхней части экрана или поисковый виджет ( SearchView
), который можно встроить в макет вашей активности. В любом случае система Android помогает реализовать поиск, отправляя поисковые запросы в конкретную активность, которая выполняет поиск. Вы также можете включить поисковый диалог или виджет для отображения поисковых подсказок по мере ввода текста пользователем. На рисунке 1 показан пример поискового диалогового окна с дополнительными поисковыми подсказками.
После настройки диалогового окна поиска или виджета поиска вы можете сделать следующее:
- Включить голосовой поиск.
- Предоставлять поисковые предложения на основе недавних запросов пользователей.
- Предоставляйте индивидуальные предложения по поиску, которые соответствуют фактическим результатам в данных вашего приложения.
- Предложите варианты поиска вашего приложения в общесистемном поле быстрого поиска.
Примечание : поисковый фреймворк не предоставляет API для поиска по вашим данным. Для выполнения поиска необходимо использовать API, соответствующие вашим данным. Например, если ваши данные хранятся в базе данных SQLite, используйте API android.database.sqlite
для выполнения поиска.
Кроме того, нет гарантии, что устройство предоставит специальную кнопку «ПОИСК», которая вызовет поисковый интерфейс в вашем приложении. При использовании диалогового окна поиска или пользовательского интерфейса необходимо предоставить кнопку поиска в вашем пользовательском интерфейсе, которая активирует поисковый интерфейс. Подробнее см. в разделе «Вызов диалогового окна поиска» .
На следующих страницах показано, как использовать фреймворк Android для реализации поиска:
- Создать поисковый интерфейс
- Как настроить приложение для использования диалогового окна поиска или виджета поиска.
- Добавить последние предложения по запросам
- Как предоставлять предложения на основе ранее использованных запросов.
- Добавить пользовательские предложения
- Как предоставлять предложения на основе пользовательских данных из вашего приложения и отображать их в системном поле быстрого поиска.
- Конфигурация с возможностью поиска
- Справочный документ по файлу конфигурации с возможностью поиска. В других документах также рассматривается файл конфигурации с точки зрения его конкретного поведения.
Защитите конфиденциальность пользователей
При реализации поиска в приложении примите меры по защите конфиденциальности пользователя. Многие пользователи считают свои действия на телефоне, включая поиск, конфиденциальной информацией. Для защиты конфиденциальности пользователей соблюдайте следующие принципы:
- Не отправляйте личную информацию на серверы, а если это необходимо, не регистрируйте ее.
Персональные данные — это любая информация, которая может идентифицировать ваших пользователей, например, их имена, адреса электронной почты, платёжная информация или другие данные, которые можно обоснованно связать с такой информацией. Если ваше приложение реализует поиск с помощью сервера, избегайте отправки персональных данных вместе с поисковыми запросами. Например, если вы ищете компании рядом с определённым почтовым индексом, вам не нужно отправлять идентификатор пользователя; отправьте на сервер только почтовый индекс. Если вам необходимо отправлять персональные данные, не регистрируйте их. Если же вам необходимо их регистрировать, тщательно защищайте эти данные и удаляйте их как можно скорее.
- Предоставьте пользователям возможность очистить историю поиска.
Фреймворк поиска помогает вашему приложению предоставлять контекстно-зависимые подсказки во время ввода текста пользователем. Иногда эти подсказки основаны на предыдущих поисковых запросах или других действиях, выполненных пользователем в предыдущем сеансе. Пользователь может не захотеть, чтобы предыдущие поисковые запросы были видны другим пользователям устройства. Если ваше приложение предоставляет подсказки, которые могут отображать предыдущие поисковые запросы, обеспечьте пользователю возможность очистить историю поиска. При использовании SearchRecentSuggestions
можно вызвать метод clearHistory()
. Если вы реализуете пользовательские подсказки, необходимо предоставить аналогичный метод очистки истории в вашем поставщике контента, который пользователь сможет выполнить.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-26 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 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."]]