我正在重新设计我的 Android 应用程序的搜索界面。我有红色的 Google 的 API 指南(http://developer.android.com/guide/topics/search/search-dialog.html)。
当前版本的应用程序使用经典的系统搜索对话框。它缺少我想在新版本中提供的自动完成功能。
我对自动完成的要求:如果查询字符串少于 3 个字符,应用程序应根据存储在本地的收藏夹集自动建议搜索结果。如果查询包含至少 3 个字符,则应通过搜索 API 远程进行搜索。
由于从历史上看,应用程序的最低 API 将是 7 级,我不能使用 Honeycomb 的 SearchView (API 11+) 或 ActionBarSherlock SearchView (API 8+)。我决定坚持使用 SearchManager 提供的搜索对话框。
我已经成功实现了上述所有要求。
但是,有一件事降低了可用性。
当用户开始搜索时,搜索对话框获得焦点。期望的行为是立即建议所有收藏夹。不过,这仅适用于我的 HTC Legend 运行 Froyo (2.2)。在我的 Galaxy Nexus 上,该应用程序大多数时候不会立即显示所有建议。在用户输入至少一个字符之前,我不会收到对我的 SearchProvider 的回调。
我的问题:有没有办法在从 API 7+ 开始的所有 Android 版本中立即显示建议/获取对 SearchProvider 的回调?
我尝试了对 SearchManager (startSearch()) 的不同调用,但没有运气。