问题标签 [mergecursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10159 浏览

android - 何时使用 CursorJoiner / MatrixCursor / MergeCursor?

我正在探索从两个或多个连接表中优雅地获取数据的不同方法。

我相信MergeCursor,(Android 开发人员指南)似乎暗示可以(例如)SQL UNION通过连接两个查询(或将视图单独添加为行等)来替换等价物——所以,这不是我想要的。

但我不知道究竟是什么CursorJoinerMatrixCursor是为了什么,或者如何使用它们。我已经查看了它们的来源,并且(像往常一样)这对我来说毫无意义!我在使用中发现的示例并没有清楚地解释产生的效果。我真的很感激对它们的良好描述,以及它们可能被使用的上下文。

0 投票
1 回答
3060 浏览

android - 使用 MergeCursor 和 SimpleCursorAdapter,缺少什么?

无论我做什么,以下都会引发错误,即 cursor_counterparty 中包含的列之一不存在。当我检查 merge_cursor 时,我可以在那里找到列,这是我的代码,我做错了什么?

我得到的错误是:

java.lang.IllegalArgumentException:列“counterparty_name”不存在

当我调试应用程序时,我可以在 merge_cursor 中的一个游标中看到“counterparty_name”作为一列。

任何帮助都会很棒,谢谢!

0 投票
4 回答
3094 浏览

android - 使用 cursor.respond(Bundle) 和 cursor.getextras()

我有 2 个来自 SQLite 数据库中不同表的游标。我试图将两个游标中的数据合二为一,ListView但每个游标的数​​据格式不同。

我的想法是使用 aMergeCursor来组合两个光标,但ViewBinderfor mySimpleCursorAdapter会将它们视为单个光标,并且无法区分格式(除非我更改我不想这样做的表格)。

最后,我找到了两个名为Cursor.repond(Bundle)&的方法Cursor.getExtras(),但是开发者控制台上的文档很短,谷歌搜索这些方法并没有说明它们的用途。

我测试了我的想法以resond()在我的数据库类中用于查询:

并在 中使用getExtras()ViewBinder了解查询表并ListView相应地格式化项目:

但我总是遇到一个tab例外null

经过这么长的描述后,我的问题是:我是否正确使用了respondandgetExtras方法?如果没有,是否有更好的方法来解决我的问题?

0 投票
1 回答
1673 浏览

android - 如何将两个数据库表中的数据合并到一个listView中

我对如何将两个单独的数据库查询组合到一个 listView 中感到很困惑。

目前,我的 listView 由以下适配器填充,该适配器在我的数据库中查询损坏的组件表并提供某个位置的损坏组件列表:

当我在活动开始时调用以下命令时会触发此事件:

因此,我还想在单独的表(这次是问题表)上创建第二个查询,并将其添加到损坏组件列表下的 listView 中。

从多个表中读取此Listview?,我相信我应该使用 JoinMerge 游标。但是,根据我的研究,我仍然不知道如何将这两个概念集成到我的代码中。

谁能指出我正确的方向?

0 投票
1 回答
2294 浏览

android - 更改光标后Android ListView不刷新

以下代码用于填充无穷无尽的 ListView。当用户到达列表末尾时,应用程序调用异步任务以获取更多项目,然后在执行后返回新光标并与前一个光标合并。问题是这段代码不适用于 ICS 和 Jelly Bean,但适用于 Froyo 和 Gingerbread。在 ICS 和 JellyBean 上,列表视图为空,但如果您记录光标大小,您将获得合并光标的大小。

0 投票
2 回答
1322 浏览

android - 在 onLoadFinished() 期间合并游标会导致旋转后出现 StaleDataException

我正在使用 loaderManager 从数据库中加载一些结果。不幸的是,以下代码在旋转设备后会产生StaleDataException :

对getWebSearchesCursor()的调用会返回一个 MatrixCursor,其中包含一些附加的搜索提示,以伴随任何返回的结果。我发现将adapter.changeCursor(results)更改为adapter.changeCursor(cursor)可以修复错误,因此看起来将 MatrixCursor 合并到返回的光标会产生错误。

我的问题是,为什么?

如果返回任何结果,我希望能够向返回的光标添加其他项目,以便用户可以选择在几个网站上执行搜索。有没有更好的方法来合并游标,这样我在旋转后就不会出现这个异常?

0 投票
1 回答
2284 浏览

android - listview setItemChecked 无法正常工作

我遇到了由合并光标填充的列表视图的问题。我的应用程序中有一个按钮可以选择列表视图中的所有条目。按下按钮时调用的函数如下:

问题是最终并非所有条目都得到检查。确实很奇怪。经过一些测试,我注意到如果我在合并光标中有 10 个条目(5 个来自光标 a,5 个来自光标 b),那么如果我只在前 5 个元素上使用 setItemChecked,一切正常(这 5 个条目被检查)。如果我再次在最后 5 个元素上使用 setItemchecked 一切正常(来自游标 b 的条目被检查),但如果我对来自两个游标的元素使用 setItemChecked 则被检查的最大元素数是游标 a 中的元素数(在我们的示例中为 5),偏移量为(我想要设置的项目数 - 光标 a 中的项目数)。我会写下几个例子,因为这是一个非常奇怪的行为。

我正在使用

也无济于事。有什么帮助吗?

作为旁注,

总是在视图中返回正确数量的条目

0 投票
1 回答
462 浏览

android - CursorIndexOutOfBounds 与 MergeCursor 和 ContentProvider

我从我的内容提供者返回一个 MergeCursor 实例,包装来自同一内容提供者的游标。听起来很奇怪,但我需要它来进行数据聚合。这是代码:

我不在setNotificationUri这里使用,因为filteredLatest光标已经设置了通知 uri。

一切都很顺利,我可以查看数据,直到我用新数据更新内容提供者。

然后它与

我已经查看了MergeCursor代码,似乎包裹的光标被通知了数据更改并将 MergeCursor 的位置设置为-1。然后适配器也被通知更改并且它死了。

我不确定在哪里寻找错误。

0 投票
1 回答
1288 浏览

android - Android: Add column to already populated Cursor

I'm confused about whether to use MergeCursor or CursorJoiner.

I have a Cursor (A) with a load of data in it. Lets say there are 100 rows in Cursor (A) and 3 columns. What I want to do is insert (append) a new column to the Cursor so the resulting Cursor (B) has 100 rows but 4 columns.

At this moment in time I would like the 4th column to contain a default value for the 100 rows.

How would I do this?

0 投票
1 回答
240 浏览

android - 数据更改后 MergeCursor 不更新

我正在创建一个 MergeCursor 像这样:

然后当我向相应的数据库表添加新行时:

我也试过:

所有方法都被调用(通过 Log.d 确认),所以我不确定为什么在触发通知时没有更新游标。任何对制作这项工作的见解将不胜感激。过去我对常规游标没有任何问题,但这个 MergeCursor 业务没有运气。