【问题标题】:Custom ContentProvider suggestions not displaying自定义 ContentProvider 建议未显示
【发布时间】:2015-02-04 11:51:35
【问题描述】:

我的目标: 在应用程序中实现搜索。

应该如何工作: 我有多个活动,它们的操作栏(或他们现在所说的工具栏)中有一个 SearchView,还有一个专用的搜索活动。我希望能够在 SearchView 中输入文本,在我输入文本以及发送搜索以启动专用活动并正确列出结果时接收建议。

到目前为止我做了什么: 我已经按照here 的建议使用了带有 ContentAdapter 方法的 SearchView。我设法在每个活动中都有 SearchView,当我按键盘上的 go 时,我被带到专用的搜索活动并显示查询(稍后将实现有效搜索)。到目前为止一切顺利。

问题: 我试图创建一个自定义 ContentProvider 来提供一些模型建议,但我无法使其工作。我在其中定义了一个自定义 String[],然后在查询方法中将我的搜索与所述字符串中的元素匹配。光标已注册,并且在我编写文本时会触发查询方法,但在非专用活动中未显示任何结果。在专用的搜索活动中,我看到了一个空列表视图并收到“更改光标和缓存列时出错”IllegalStateException

我无法找到任何信息,因为每个人似乎都将 ContentProvider 与本地数据库一起使用。但是,我打算将来在查询方法中从 REST API 接收我的信息,并使用接收到的值返回光标(如 this 示例)

我将不胜感激有关此事的任何建议。由于我不确定要提供什么代码,我会根据要求提供。

【问题讨论】:

    标签: android android-contentprovider searchview search-suggestion


    【解决方案1】:

    已修复...

    问题是我在 onCreate 中创建了我的 MatrixCursor。

    解决方法是在query方法中声明并实例化游标。

    旁注: 事实证明,在传递给 MatrixCursor 的构造函数的 String[] 列中,您需要使用 SearchManager 常量(即 SearchManager.SUGGEST_COLUMN_TEXT_1)指定值,否则如果您使用默认视图和适配器。

    我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      相关资源
      最近更新 更多