版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android-浮动搜索框(SearchManager浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UISearchManager具体使用步骤如下:(1)配置searchbar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。田E代码<searchablexmlns:android=http:res/android<!-label为搜索框上方的文本,hint搜索框里面的提示文本,显示label->android:label=&quo
2、t;string/search_label”android:hint="string/search_hint”android:searchMode="showSearchLabelAsBadge”<!-语音搜索配置->android:voiceSearchMode="showVoiceSearchButton|launchR="freeform”ecognizer"android:voiceLanguageModelandroid:voicePromptText="string/search_invoke”<!-配置
3、搜索建议,配置错误将不会显示,这里的searchSuggestAuthority的值必须是继承自SearchRecentSuggestionsProvider的完整路径名->="com.android.cbin.Seaandroid:searchSuggestAuthorityrchSuggestionSampleProvider'android:searchSuggestSelection/>(2)manifest.xml配置,搜索结果处理的Activity将出现两种情况,一种是从其他Activity中的searchbar打开一个Activtiy专门处理搜索结果
4、,第二种是就在当前Activity就是处理结果的Activity,先介绍第一种配置:代码<activityandroid:name="SearchResultActivity"><intent-filter<actionandroid:name="ent.action.SEARCH"></action></intent-filter><!-指定上面的searchable.xml文件-><meta-dataandroid:resource="xml/se
5、archable"android:name="android.app.searchable"></meta-data></activity><!-为了使每一个Activity都能使用searchbar,一定要将这个标签放到启动Activity中,里面的value指定的是前面的搜索结果Activity-><meta-dataandroid:name="android.app.default_searchable"android:value=".SearchResultActivity&qu
6、ot;/>(3)搜索建议在manifest.xml中相关的配置<!-之前searchable.xml中有个searchSuggestAuthority的值其实和这里的authorities指向的者B是name中所关联的SearchSuggestionSampleProvider,他是一个SearchRecentSuggestionsProvider的子类->providerandroid:name="SearchSuggestionSampleProvider"android:authorities="com.android.cbin.Searc
7、hSuggestionSampleProvider"></provider>上面authorities指向的都是name中所关联的SearchSuggestionSampleProvider,他是一个SearchRecentSuggestionsProvider的子类代码publicclassSearchSuggestionSampleProviderextendsSearchRecentSuggestionsProviderfinalstaticStringAUTHORITY="com.android.cbin.SearchSuggestionSampl
8、eProvider"finalstaticintMODE=DATABASE_MODE_QUERIES;publicSearchSuggestionSampleProvider()super();setupSuggestions(AUTHORITY,MODE);)(4)为了能够使用searchbar我们必7K重写Activity的onSearchRequested的方法,在界面上启动一个searchbar但是这个动作不会自动触发,必须通过一个按钮或者菜单的点击事件触发;代码OverridepublicbooleanonSearchRequested()Stringtext=etdata
9、.getText().toString();Bundlebundle=newBundle();bundle.putString("data",text);/打开浮动搜索框(第一个参数默认添加到搜索框的值)/bundle为传递的数据startSearch("mm",false,bundle,false);/这个地方一定要返回真如果只是super.onSearchRequested方法不但/onSearchRequested(搜索框默认值)无法添加到搜索框中,bundle也无法传递出去returntrue;(5)接收query和bundle、保存query值
10、(即搜索建议的列表值)代码publicvoiddoSearchQuery()finalIntentintent=getIntent();/获得搜索框里值Stringquery=intent.getStringExtra(SearchManager.QUERY);tvquery.setText(query);/保存搜索记录tSuggestions(thisSearchSuggestionSampleProvider.AUTHORITY,SearchSuggestionSampleProvider.MODE);suggestions.saveRecentQuery(query,null);if(I
11、ntent.ACTION_SEARCH.equals(intent.getAction()/获取传递的数据Bundlebundled=intent.getBundleExtra(SearchManager.APP_DATA);if(bundled!=null)Stringttdata=bundled.getString("data");tvdata.setText(ttdata);elsetvdata.setText("nodata");之前说到了处理结果的Activity将可能出现的两种情况的两种,现在就处理第二种状况,就是假如invokesearch
12、bar的Activity同时也是处理搜索结果的Activity,如果按照之前的方式处理则会出现一种情况,搜索一次就实例化一次Activity,当按返回键的时候会发现老是同一个Activity,其实为了使它只有一个实例化对象,只需简单的配置和代码就能实现第一:在处理搜索结果Activity的manifest.xml中添加android:launchMode="singleTop"属性第二:重写Activity的onNewIntent(Intentintent)代码OverridepublicvoidonNewIntent(Intentintent)super.onNewInt
13、ent(intent);/获得搜索框里值Stringquery=intent.getStringExtra(SearchManager.QUERY);tvquery.setText(query);/保存搜索记录SearchRecentSuggestionssuggestions=newSearchRecentSuggestions(this,SearchSuggestionSampleProvider.AUTHORITY,SearchSuggestionSampleProvider.MODE);suggestions.saveRecentQuery(query,null);if(Intent.
14、ACTION_SEARCH.equals(intent.getAction()/获取传递的数据Bundlebundled=intent.getBundleExtra(SearchManager.APP_DATA);if(bundled!=null)Stringttdata=bundled.getString("data");tvdata.setText(ttdata);elsetvdata.setText("nodata");相关知识:上面讲到了将最近的搜索值添加到搜索建议中,但却没有提到如果清理搜索建议中的值,与保存相似,SearchRecentSuggestion对象提供了一个clearHistory()方法代码newS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《矿物质水介绍》课件
- 八下期末考拔高测试卷(2)(原卷版)
- 第23课 内战爆发(原卷版)
- 2014年高考语文试卷(湖北)(空白卷)
- 农耕之路模板
- 建筑行业工人培训总结
- 人力资源的战略驱动
- 会计个人述职报告汇编15篇
- 网络公司前台接待工作总结
- 2023年-2024年项目部安全培训考试题附完整答案(夺冠)
- 冬季高空作业施工方案
- 山西云时代技术有限公司招聘笔试题目
- 课程思政专题培训
- 食品买卖合同范本
- 心脏病专病中心申报
- 期末素养质量检测卷(试题)-2024-2025学年三年级上册数学人教版
- 皮肤科银屑病护理个案
- 2024年房地产开发商与承建商之间的工程承包合同
- 语文-句子成分划分名师公开课获奖课件百校联赛一等奖课件
- 班组安全争先创优竞赛活动考核细则表
- 2024-2030年中国眼视光行业现状态势与未来前景预测报告
评论
0/150
提交评论