我有三个数据库表:Stacks
、Dates
和Z
,Stacks
我的主表在哪里,并且Dates
和Z
是“子”表,具有外键列,链接到 的主键列Stacks
。(请原谅我的术语,如果需要,我可以提供架构。)
以后我将只提及Stacks
and Dates
,以减少我的解释的复杂性,但如果它是相关的,Z
将以与 完全相同的方式使用Dates
。
在一个典型的例子ListFragment
中,我使用参考页面ListView
上讨论的实现来构建一个- 创建一个空适配器,然后在我的查询完成时换出(查询输入和换入)。LoaderManager
Cursor
onCreateLoader()
onLoadFinished()
我查询Stacks
表(使用 URI,因为我的 DB 前面是Content Provider
使用Simple Content Provider
library实现的),因为我想绑定到getView()
适配器中每个列表项的值大多在这里找到,这很好用。
但是,我也希望绑定Dates
表中的一些值,尽管我不确定如何执行此操作。在使用加载器之前,我会SQLiteOpenHelper
在适配器中创建一个新的,并直接在getView() 方法中访问辅助项,即Cursor
从Dates
表中返回s。这很慢,我很确定事后看来这是个坏主意:P
有没有一种标准的方法来实现这一点,使用多个数据源(理想情况下使用加载器)填充列表视图?
编辑:
- 对于每个关联的表,该
Dates
表可能有多个记录(具有不同的值)Stack
。 - 我有一个 ContentProvider 可以访问所有三个表,具体取决于 URI
- 我也很乐意使用多个加载器,因为我怀疑无论如何我都必须这样做,因为我需要在片段中显示与
ListView
.