Searchable之Recent Query Suggestions(下)

修改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。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值