为Android应用增加搜索功能:增加搜索建议
什么是搜索建议
首先我们来看下什么是搜索建议。在Android应用中,当用户输入搜索字符串是,系统会根据输入的字符串的部分或整体,以下拉框的方式列出含有用户输入字符串的列表,这样用户就可以不必输入完所有字符,可以直接从下拉列表中选择,方便了用户。如果能在APP应用的搜索模块中加入这个功能,对用户来说无疑是十分方便的,下图是在搜索应用中使用搜索建议的图:
搜索建议的两类模式
要让搜索应用支持搜索建议,必须在应用中增加一个自定义的content provider,并且要设置配置文件中的搜索元数据。
Android支持两种类型的搜索建议模式:
· 基于用户输入的搜索建议
· 基于APP应用本身数据库的搜索建议,即从APP应用数据库中提取数据做搜索建议
下面分别讲解两种搜索建议方式是如何配置的:
基于用户输入的搜索建议
这种方式相对比较容易,先来介绍下。在Android中,提供了SearchRecentSuggestionsProvider这个类,可以实现从用户最近输入的内容中进行检索,开发者只需要做的,只需要继承这个类,并且在构造函数中进行如下设置:
import android.content.SearchRecentSuggestionsProvider;
publicclass SampleRecentSuggestionsProvider
extends SearchRecentSuggestionsProvider {
public static final String AUTHORITY =
SampleRecentSuggestionsProvider.class.getName();
public static final int MODE =DATABASE_MODE_QUERIES;
public SampleRecentSuggestionsProvider() {
setupSuggestions(AUTHORITY, MODE);
}
}
在上面的这个类中,继承了SearchRecentSuggestionsProvider,并且在构造函数中进行了设置,这样这个自定义的contentprovider就拥有了查询用户最近输入检索的能力了。
但必须同时保存用户曾经的检索输入,这样就能在用户再次输入时,重新显示出来,这个必须在search的activity中,写入如下代码:
SearchRecentSuggestions suggestions =
newSearchRecentSuggestions(this,
SampleRecentSuggestionsProvider.AUTHORITY,