- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
搜索结果效果
搜索效果图:
实现步骤:
在谷歌API中提供了搜索的类Search:
1、在res/xml/下创建searchable.xml文件,必须属性如下
label:注意:必须指向一个资源ID,例如@string/search_sms
hint:默认提示的文字
例子:
?xml version=1.0 encoding=utf-8?
searchable xmlns:android=/apk/res/android
android:label=@string/app_name
android:hint=@string/search_hint
/searchable
Tips:这里必须不能出现中文
2、创建searchableActivity
1)在manifest文件中配置activity中的信息
activity android:name=com.example.searchdemo.SearchActivity !—搜索的Activity的包名 --
intent-filter
action android:name=ent.action.SEARCH /
/intent-filter
meta-data
android:name=android.app.searchable
android:resource=@xml/searchable /
/activity
2)在SearchableActivity这个类的onCreate方法中,编写代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if(Intent.ACTION_SEARCH.equals(intent.getAction())){
String query = intent.getStringExtra(SearchManager.QUERY);
Log.i(TAG, 查询的内容是:+query);
}
}
3、清单文件中配置搜索框
Tips:必须配置这个节点,否则不会调出上面创建的搜索框
在那个Activity节点中配置,那个Activity就能显示搜索框,如果配置在application节点中,全局都可以使用
application
activity android:name=com.example.searchdemo.SearchActivity
intent-filter
action android:name=ent.action.SEARCH /
/intent-filter
meta-data
android:name=android.app.searchable
android:resource=@xml/searchable /
/activity
meta-data
android:name=android.app.defalut_searchable
android:value=.SearchActivity /
/application
4.通过onSearchRequested()方法调出搜索框
在需要搜索的地方,调用onSearchRequest()方法即可
public void search(View view){
onSearchRequested();
}
5.在SearchableActivity中获取Intent,获取SearchManager.QUERY参数的值
进行搜索,搜索完之后获得Cursor,绑定数据
在第2步的2)中实现搜索数据的处理
见下示例代码
6.如果想要类似AutoCompleteTextView的效果需要自定义一个Provider,详细步骤如下:
step1: 自定义一个Provider实现SearchRecentSuggestionsProvider
step2: 在searchable.xml文件中加以下属性:
searchSuggestAuthority searchSuggestSelection
step3: 在自定义的Provider的无参构造函数中调用setupSuggestions
step4: 重写query方法,查询短信数据库.
step5: 对查询出来的Cursor游标进行转换,需要转换成MatrixCursor
其中列值对应
原创力文档


文档评论(0)