public class SearchRecentSuggestions extends Object
SearchRecentSuggestionsProvider
.
Unlike some utility classes, this one must be instantiated and properly initialized, so that it can be configured to operate with the search suggestions provider that you have created.
Typically, you will do this in your searchable activity, each time you receive an incoming
ACTION_SEARCH
Intent. The code to record each
incoming query is as follows:
SearchSuggestions suggestions = new SearchSuggestions(this, MySuggestionsProvider.AUTHORITY, MySuggestionsProvider.MODE); suggestions.saveRecentQuery(queryString, null);
For a working example, see SearchSuggestionSampleProvider and SearchQueryResults in samples/ApiDemos/app.
For information about using search suggestions in your application, read the Adding Recent Query Suggestions developer guide.
Modifier and Type | Field and Description |
---|---|
static String[] |
QUERIES_PROJECTION_1LINE
This is the database projection that can be used to view saved queries, when
configured for one-line operation.
|
static String[] |
QUERIES_PROJECTION_2LINE
This is the database projection that can be used to view saved queries, when
configured for two-line operation.
|
static int |
QUERIES_PROJECTION_DATE_INDEX
Index into the provided query projections.
|
static int |
QUERIES_PROJECTION_DISPLAY1_INDEX
Index into the provided query projections.
|
static int |
QUERIES_PROJECTION_DISPLAY2_INDEX
Index into the provided query projections.
|
static int |
QUERIES_PROJECTION_QUERY_INDEX
Index into the provided query projections.
|
Constructor and Description |
---|
SearchRecentSuggestions(Context context,
String authority,
int mode)
Although provider utility classes are typically static, this one must be constructed
because it needs to be initialized using the same values that you provided in your
SearchRecentSuggestionsProvider . |
Modifier and Type | Method and Description |
---|---|
void |
clearHistory()
Completely delete the history.
|
void |
saveRecentQuery(String queryString,
String line2)
Add a query to the recent queries list.
|
protected void |
truncateHistory(ContentResolver cr,
int maxEntries)
Reduces the length of the history table, to prevent it from growing too large.
|
public static final String[] QUERIES_PROJECTION_1LINE
public static final String[] QUERIES_PROJECTION_2LINE
public static final int QUERIES_PROJECTION_DATE_INDEX
public static final int QUERIES_PROJECTION_QUERY_INDEX
public static final int QUERIES_PROJECTION_DISPLAY1_INDEX
public static final int QUERIES_PROJECTION_DISPLAY2_INDEX
public SearchRecentSuggestions(Context context, String authority, int mode)
SearchRecentSuggestionsProvider
.authority
- This must match the authority that you've declared in your manifest.mode
- You can use mode flags here to determine certain functional aspects of your
database. Note, this value should not change from run to run, because when it does change,
your suggestions database may be wiped.SearchRecentSuggestionsProvider
,
SearchRecentSuggestionsProvider.setupSuggestions(java.lang.String, int)
public void saveRecentQuery(String queryString, String line2)
queryString
- The string as typed by the user. This string will be displayed as
the suggestion, and if the user clicks on the suggestion, this string will be sent to your
searchable activity (as a new search query).line2
- If you have configured your recent suggestions provider with
SearchRecentSuggestionsProvider.DATABASE_MODE_2LINES
, you can
pass a second line of text here. It will be shown in a smaller font, below the primary
suggestion. When typing, matches in either line of text will be displayed in the list.
If you did not configure two-line mode, or if a given suggestion does not have any
additional text to display, you can pass null here.public void clearHistory()
protected void truncateHistory(ContentResolver cr, int maxEntries)
cr
- Convenience copy of the content resolver.maxEntries
- Max entries to leave in the table. 0 means remove all entries.