如何在用户开始输入之前立即在Android中搜索建议

dre*_*eid 9 android

我正在对ContentProviders和Searchable配置进行一些研究.我已经设置了一个类,该类使用数据库扩展内容提供程序,该数据库在用户键入时提供来自数据库的建议.这使用搜索管理器范例(不是SearchView).

到目前为止,一切都很好.

我今天准备这样做的,我有问题是显示一些建议之前用户开始输入,他启动搜索之后.在searchable.xml中设置属性'android:searchSuggestThreshold ="0"'只有在用户启动后实际点击搜索文本框时才有效 - 我想在搜索启动后立即显示建议(即不等待用户做其他事情).

有任何想法吗?

编辑:我正在谈论的一个例子是Google Play商店应用中的搜索功能 - 当用户点击放大镜进行搜索时,会立即弹出最近的建议列表.

dre*_*eid 3

在花费了很多时间之后,我终于找到了一种方法来实现我所需要的。这是答案,因此也许更少的其他开发人员受到影响:

搜索模式的 SearchView 有一个文本更改监听器,只有当文本更改时才会触发建议请求。显然,对于初始状态没有任何改变,因此它不会通过 query() 函数请求建议。

为了“欺骗”SearchView 认为文本已更改,您可以执行以下操作:

@Override
public boolean onSearchRequested()
{
  final SearchManager searchManager = (SearchManager) getSystemService( SEARCH_SERVICE );    

  searchManager.startSearch( " ", true, getComponentName(), null, false );

  return super.onSearchRequested();
}
Run Code Online (Sandbox Code Playgroud)