android - 如何在用户开始输入之前立即在可搜索的 Android 中启动建议

标签 android

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

到目前为止,一切正常。

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

有什么想法吗?

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

最佳答案

好吧,在这上面花了很多时间之后,我终于找到了一种方法来实现我所需要的。答案是这样的,也许其他开发者会更少受苦:

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

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

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

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

  return super.onSearchRequested();
}

关于android - 如何在用户开始输入之前立即在可搜索的 Android 中启动建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382857/

相关文章:

Android 列表小部件问题

java - 如何使用按钮搜索将搜索查询传递给另一个 Activity

java - 无法从 jar 中给出的扩展 Activity 启动 Activity

java - 带有 Java Asmack 库和 X-FACEBOOK-PLATFORM 的 XMPP

android - 如何在适配器android中安排诸如(填空)之类的问题的布局

当 View 显示时 Android View.isShown() 返回 false

c# - 在 Android 上安全地存储加密 key

android - 渐变在 SurfaceView 中显示为带状,但在普通 View 中看起来非常平滑

java - 生成动态内容时出错

android - 使用 ListViews 的垂直画廊实现