注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

Searchable之Recent Query Suggestions(下)  

2011-05-13 13:00:16|  分类: 开发专题 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
修改Searchable配置
保存Queries
为了获得最近的搜索词集合,你需要通过你的searchable activity把它保存在你的SearchRecentSuggestionsProvider中。
为此,你需要创建一个SearchRecentSuggestions的实例,并调用它的saveRecentQuery() 方法把searchable activity收到的查询关键词进行保存。下面示例3就是在activity的 onCreate()保存Queries的一个示例。
示例3:
@Override
public void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
    setContentView
(R.layout.main);

   
Intent intent  = getIntent();

   
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
       
String query = intent.getStringExtra(SearchManager.QUERY);
       
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
               
MySuggestionProvider.AUTHORITY, MySuggestionProvider.MODE);
        suggestions
.saveRecentQuery(query, null);
   
}

}
SearchRecentSuggestions的构造函数需要两个参数,你的content provider(SearchRecentSuggestionsProvider)中设置的搜索授权和数据库模式。
saveRecentQuery需要两个参数,第一个是搜索关键字,第二个是可选的,它表示的是搜索关键字的second line.(如果搜索关键字的没second line则为null),第二个参数只是在用DATABASE_MODE_2LINES设置为two-line mode的时候才用。如果你开启了two-line mode,系统在查找matching suggestions的时候,query text还需要匹配这个second line
清空Suggestion Data
为了保护用户的私密性,你应该总是给用户提供清空最近搜索关键字的功能。你可以通过调用clearHistory()来清空最近的搜索关键字。
比如:
示例4:
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
        HelloSuggestionProvider.AUTHORITY, HelloSuggestionProvider.MODE);
suggestions.clearHistory();
你应该通过叫"Clear Search History"的菜单项或按钮来执行上面的代码,一般清空Suggestion Data,当然最好在执行上面的代码之前先弹出一个对话框来让用户确定是否真正的需要清空Suggestion Data。
  评论这张
 
阅读(658)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017