【问题标题】:How to join a ContentResolver Cursor with a Database Cursor?如何将 ContentResolver 游标与数据库游标连接起来?
【发布时间】:2010-03-21 22:43:04
【问题描述】:

我通过查询 ContentResolver 从系统获取记录。我维护数据库中项目的顺序。所以我想按照从我的数据库中获取的顺序显示项目。

如何合并这两个信息?

编辑 1

我现在正在寻找另一种方法。我理想中想要的是:

  • 通过我的数据库中保存的自定义顺序获取联系人顺序(这涉及使用我的 DB 光标连接 CR,并通过以后的接缝进行排序,这对于 CursorJoiner 是不可能的)
  • 但还有更多,如果加入不是唯一的,我想按联系人姓名排序作为最后一个度量

使用 Cursor 和 Joiners 是不可能的,因为缺少 order bys 功能,我还需要返回一个 Cursor,因为我将在 ExpandableList 中使用

这也翻译成 TSQL 它看起来像

select * from contactsdata 
left join category on contactsdata.catid=category.id
order by category.pos asc, contact.display_name asc

所以我现在正在寻找替代方案。
我要在临时数据库表中加载来自 CR 的所有数据,然后在临时表上进行查询,我可以在其中加入表并按顺序进行排序?你觉得这听起来如何?

【问题讨论】:

    标签: android cursor android-contentresolver


    【解决方案1】:

    看看CursorJoiner

    如果这不起作用,你可以用相当多的疼痛、威士忌或两者兼而有之地滚动你自己的等价物。

    【讨论】:

    • 不,这只是威士忌的说法。 :-) 更严重的是,我 推出了自己的产品,而且它的代码量相当可观。这当然是可行的,但如果你能避免它,那不是你想做的事情。
    • 检查我对原始问题的编辑,以及我将所有 CR 数据加载到临时表中以对其运行查询的方法。
    • 我认为您的数据模型对于移动设备来说太复杂了。 :-) 不过,除此之外,您唯一的选择是您描述的那个或自己在 Java 中执行所有连接操作(例如,填充 MatrixCursor)。
    • OK 看看我能做什么。不幸的是,我知道模态太复杂了,但也不止于此。我正在做一些增强/多级排序顺序,有点难以将它与 CR 放在一起。
    猜你喜欢
    • 2017-07-06
    • 2014-12-30
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    相关资源
    最近更新 更多