Integra le funzionalità di ricerca di Android nella tua app
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Prova Compose
Jetpack Compose è il toolkit per la UI consigliato per Android. Scopri come aggiungere la funzionalità di ricerca in Scrivi.
La ricerca è una funzionalità di base per gli utenti su Android. Gli utenti devono essere in grado
di cercare tutti i dati a loro disposizione, indipendentemente dal fatto che i contenuti si trovino sul dispositivo o
su internet. Per contribuire a creare un'esperienza di ricerca coerente per gli utenti, Android fornisce un
framework di ricerca che ti aiuta a implementare la ricerca per la tua applicazione.
Figura 1. Una finestra di dialogo di ricerca con suggerimenti
personalizzati.
Il framework di ricerca offre due modalità di inserimento della ricerca: una finestra di dialogo di ricerca nella parte superiore dello schermo o un widget di ricerca (SearchView
) che puoi incorporare nel layout dell'attività. In entrambi i casi, il sistema Android assiste l'implementazione della ricerca
inviando le query di ricerca a un'attività specifica che esegue le ricerche. Puoi anche attivare
la finestra di dialogo o il widget di ricerca per fornire suggerimenti di ricerca durante la digitazione dell'utente. La figura 1 mostra un
esempio della finestra di dialogo di ricerca con suggerimenti di ricerca facoltativi.
Dopo aver configurato la finestra di dialogo di ricerca o il widget di ricerca, puoi:
- Attiva la ricerca vocale.
- Fornire suggerimenti per le ricerche in base alle query recenti degli utenti.
- Fornisci suggerimenti di ricerca personalizzati che corrispondono ai risultati effettivi nei dati dell'applicazione.
- Offri i suggerimenti per le ricerche della tua applicazione nella casella di ricerca rapida a livello di sistema.
Nota: il framework di ricerca non fornisce API per
cercare i tuoi dati. Per eseguire una ricerca, devi utilizzare le API appropriate per i tuoi dati. Ad esempio,
se i tuoi dati sono archiviati in un database SQLite, utilizza le API android.database.sqlite
per eseguire le ricerche.
Inoltre, non è garantito che un dispositivo fornisca un pulsante di RICERCA dedicato che richiami l'interfaccia di ricerca nella tua applicazione. Quando utilizzi la finestra di dialogo di ricerca o un'interfaccia personalizzata, devi fornire un pulsante di ricerca nell'interfaccia utente che attiva l'interfaccia di ricerca. Per maggiori
informazioni, vedi Richiamare la finestra di dialogo di ricerca.
Le seguenti pagine mostrano come utilizzare il framework di Android per implementare la ricerca:
- Creare un'interfaccia di ricerca
- Come configurare l'applicazione per utilizzare la finestra di dialogo di ricerca o il widget di ricerca.
- Aggiungi suggerimenti per le query recenti
- Come fornire suggerimenti in base alle query utilizzate in precedenza.
- Aggiungere suggerimenti personalizzati
- Come fornire suggerimenti basati su dati personalizzati della tua applicazione e offrirli
nella casella di ricerca rapida a livello di sistema.
- Configurazione ricercabile
- Un documento di riferimento per il file di configurazione ricercabile. Gli altri
documenti descrivono anche il file di configurazione in termini di comportamenti specifici.
Proteggere la privacy degli utenti
Quando implementi la ricerca nella tua applicazione, adotta misure per proteggere la privacy dell'utente. Molti utenti considerano le proprie attività sullo smartphone, incluse le ricerche, come informazioni private. Per proteggere la privacy degli utenti, rispetta i seguenti
principi:
- Non inviare informazioni personali ai server e, se devi farlo, non registrarle.
Le informazioni personali sono tutti i dati che possono identificare personalmente i tuoi utenti, come
nomi, indirizzi email, dati di fatturazione o altri dati che possono essere ragionevolmente collegati a tali
informazioni. Se la tua applicazione implementa la ricerca con l'assistenza di un server, evita di inviare
informazioni personali insieme alle query di ricerca. Ad esempio, se cerchi attività
vicino a un codice postale,
non devi inviare anche l'ID utente; invia solo il codice postale al server. Se devi
inviare informazioni personali, evita di registrarle. Se devi registrarli, proteggi questi dati
con molta attenzione ed eliminali il prima possibile.
- Fornire agli utenti un modo per cancellare la cronologia delle ricerche.
Il framework di ricerca aiuta l'applicazione a fornire suggerimenti specifici per il contesto mentre l'utente
digita. A volte questi
suggerimenti si basano su ricerche precedenti o altre azioni intraprese dall'utente in una sessione
precedente. Un utente potrebbe non voler rivelare le ricerche precedenti ad altri utenti del dispositivo. Se la tua
applicazione fornisce suggerimenti che
possono rivelare le attività di ricerca precedenti, implementa un modo per consentire all'utente di cancellare la
cronologia delle ricerche. Se utilizzi SearchRecentSuggestions
,
puoi chiamare il
metodo clearHistory()
. Se implementi suggerimenti personalizzati, devi fornire un metodo "cancella cronologia"
simile nel tuo content provider che l'utente possa eseguire.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-08-26 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]