שילוב תכונות חיפוש של Android באפליקציה
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כדאי לנסות את הדרך של כתיבת אימייל
Jetpack Compose היא ערכת הכלים המומלצת לבניית ממשק משתמש ל-Android. כך מוסיפים פונקציית חיפוש בכלי הכתיבה.
חיפוש הוא תכונת ליבה למשתמשים ב-Android. המשתמשים צריכים להיות מסוגלים לחפש כל נתון שזמין להם, בין אם התוכן נמצא במכשיר או באינטרנט. כדי לעזור לכם ליצור חוויית חיפוש עקבית למשתמשים, מערכת Android מספקת מסגרת חיפוש שעוזרת לכם להטמיע חיפוש באפליקציה שלכם.
איור 1. תיבת דו-שיח לחיפוש עם הצעות מותאמות אישית לחיפוש.
מסגרת החיפוש מציעה שני מצבים של קלט חיפוש: תיבת דו-שיח של חיפוש בחלק העליון של המסך או ווידג'ט חיפוש (SearchView
) שאפשר להטמיע בפריסת הפעילות. בכל מקרה, מערכת Android מסייעת בהטמעת החיפוש על ידי העברת שאילתות חיפוש לפעילות ספציפית שמבצעת חיפושים. אפשר גם להפעיל את תיבת הדו-שיח או את הווידג'ט של החיפוש כדי לספק הצעות לחיפוש בזמן שהמשתמש מקליד. איור 1 מציג דוגמה לתיבת הדו-שיח של החיפוש עם הצעות לחיפוש אופציונליות.
אחרי שמגדירים את תיבת הדו-שיח של החיפוש או את ווידג'ט החיפוש, אפשר:
- מפעילים את החיפוש הקולי.
- הצגת הצעות לחיפושים על סמך שאילתות משתמשים מהזמן האחרון.
- הצגת הצעות מותאמות אישית לחיפוש שתואמות לתוצאות בפועל בנתוני האפליקציה.
- להציע הצעות חיפוש של האפליקציה בתיבת החיפוש המהיר בכל המערכת.
הערה: מסגרת החיפוש לא מספקת ממשקי API לחיפוש הנתונים. כדי לבצע חיפוש, צריך להשתמש בממשקי API שמתאימים לנתונים שלכם. לדוגמה, אם הנתונים שלכם מאוחסנים במסד נתונים של SQLite, תוכלו להשתמש בממשקי ה-API של android.database.sqlite
כדי לבצע חיפושים.
בנוסף, אין ערובה לכך שבמכשיר יהיה לחצן חיפוש ייעודי שמפעיל את ממשק החיפוש באפליקציה שלכם. כשמשתמשים בתיבת הדו-שיח של החיפוש או בממשק מותאם אישית, צריך לספק לחצן חיפוש בממשק המשתמש שמפעיל את ממשק החיפוש. מידע נוסף זמין במאמר בנושא הפעלת תיבת הדו-שיח של החיפוש.
בדפים הבאים מוסבר איך להשתמש במסגרת של Android כדי להטמיע חיפוש:
- יצירת ממשק חיפוש
- איך מגדירים את האפליקציה לשימוש בתיבת הדו-שיח או בווידג'ט החיפוש.
- הוספת הצעות לשאילתות מהזמן האחרון
- איך מספקים הצעות על סמך שאילתות שהיו בשימוש בעבר.
- הוספה של הצעות מותאמות אישית
- איך לספק הצעות על סמך נתונים בהתאמה אישית מהאפליקציה ולהציע אותן בתיבת החיפוש המהיר בכל המערכת.
- הגדרה שניתן לחפש
- מסמך עזר לקובץ התצורה שאפשר לחפש בו. במסמכים האחרים יש גם דיון בקובץ ההגדרות מבחינת התנהגויות ספציפיות.
הגנה על פרטיות המשתמשים
כשמטמיעים חיפוש באפליקציה, חשוב לנקוט צעדים להגנה על פרטיות המשתמש. משתמשים רבים רואים בפעילויות שלהם בטלפון – כולל חיפושים – מידע פרטי. כדי להגן על פרטיות המשתמשים, חשוב לפעול בהתאם לעקרונות הבאים:
- אל תשלחו פרטים אישיים לשרתים – ואם אתם חייבים, אל תרשמו אותם ביומן.
מידע אישי הוא כל מידע שיכול לזהות את המשתמשים שלכם באופן אישי, כמו השמות, כתובות האימייל, פרטי החיוב או נתונים אחרים שאפשר לקשר באופן סביר למידע כזה. אם האפליקציה שלכם מטמיעה חיפוש בעזרת שרת, אל תשלחו פרטים אישיים יחד עם שאילתות החיפוש. לדוגמה, אם אתם מחפשים עסקים בקרבת מיקוד מסוים, אתם לא צריכים לשלוח גם את מזהה המשתמש. אתם יכולים לשלוח לשרת רק את המיקוד. אם אתם חייבים לשלוח מידע אישי, אל תרשמו אותו ביומן. אם אתם חייבים לרשום את הנתונים האלה, עליכם להגן עליהם בקפידה ולמחוק אותם בהקדם האפשרי.
- לספק למשתמשים דרך למחוק את היסטוריית החיפושים שלהם.
מסגרת החיפוש עוזרת לאפליקציה לספק הצעות ספציפיות להקשר בזמן שהמשתמש מקליד. לפעמים ההצעות האלה מבוססות על חיפושים קודמים או על פעולות אחרות שהמשתמש ביצע בסשן קודם. יכול להיות שמשתמש לא ירצה שחיפושים קודמים שלו ייחשפו למשתמשים אחרים במכשיר. אם האפליקציה שלכם מספקת הצעות שיכולות לחשוף פעילויות חיפוש קודמות, צריך להטמיע דרך שבה המשתמש יכול לנקות את היסטוריית החיפושים שלו. אם אתם משתמשים ב-SearchRecentSuggestions
, אתם יכולים להפעיל את השיטה clearHistory()
. אם אתם מטמיעים הצעות בהתאמה אישית, אתם צריכים לספק בנותן התוכן שלכם שיטה דומה של 'ניקוי ההיסטוריה' שהמשתמש יכול להפעיל.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-26 (שעון UTC).
[null,null,["עדכון אחרון: 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."]]