3

我有两个完全不相关的表 Notes 和 Tasks。我需要在组合列表视图中同时显示它们。为了实现这一点,提供给列表适配器的组合游标应该具有两个表的 FULL OUTER JOIN。我不确定哪个 CursorJoiner/MergeCursor 是要走的路。有人可以举一些如何实现这一目标的工作示例吗?

(更改内容提供者是不可能的。所以我必须使用游标。)

编辑:我还需要能够以组合形式对项目进行排序。Notes 有一个主题列,Tasks 有一个标题列。我希望组合光标根据它们两者按字母顺序排序。

4

1 回答 1

0

由于 sqlite 不支持完全外连接或右外连接,如果您现在想了解 CursorJoiner 和 CursorMerger,请通过下面的这些链接

何时使用 CursorJoiner / MatrixCursor / MergeCursor?

CursorJoiner

如果您需要来自两个或多个表的数据,最直接的做法是使用连接两个表的 SQL 查询。但是,有时您已经有两个单独查询的源(例如基于 ContentProvider 的 CursorLoader),您可能希望只重用它们,而不创建新查询。这就是 CursorJoiner 派上用场的地方。

http://chariotsolutions.com/blog/post/android-advanced-cursors/

合并光标

MergeCursor 允许您将两个或多个光标呈现为单个光标。通过执行 sql UNION 查询,您可以获得几乎相同的效果。但是,MergeCursor 允许您在各种游标中拥有不同的列,并且仍然合并它们。

于 2015-08-16T12:36:03.173 回答