自定义 ContentProvider 建议未显示

Custom ContentProvider suggestions not displaying

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

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

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

问题: 我试图创建一个自定义 ContentProvider 来提供一些模型建议,但我无法使其工作。我在其中定义了一个自定义 String[],然后在查询方法中将我的搜索与所述字符串中的元素进行匹配。游标已注册,当我正在编写文本时会触发查询方法,但在非专用活动中不会显示任何结果。在专用搜索 activity 中,我看到一个空列表视图并收到 "error changing cursor and caching columns" IllegalStateException

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

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

已修复...

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

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

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

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