【发布时间】:2012-12-31 05:48:49
【问题描述】:
我有三个数据库表:Stacks、Dates 和 Z,其中Stacks 是我的主表,Dates 和 Z 是“子”表,带有一个外键列,链接到Stacks 的主键列。 (请原谅我的术语,如果需要,我可以提供架构。)
以后我将只提及Stacks 和Dates,以降低我解释的复杂性,但如果相关,Z 的使用方式将与Dates 完全相同。
在典型的ListFragment 中,我使用LoaderManager reference page 上讨论的实现构造了一个ListView - 创建一个空适配器,然后在我的查询完成时将Cursor 换出(查询在@ 987654338@ 并换成onLoadFinished())。
我查询Stacks 表(使用URI,因为我的数据库前面是Content Provider,使用Simple Content Provider library 实现),作为我想绑定到@ 中每个列表项的值适配器中的 987654343@ 大部分都在这里找到,并且工作正常。
不过,我还希望绑定Dates 表中的一些值,尽管我不确定如何执行此操作。在使用加载器之前,我会在适配器中创建一个新的SQLiteOpenHelper,并直接在getView() 方法中访问辅助项,即从Dates 表中返回Cursors。这很慢,我很确定事后看来这是个坏主意:P
是否有标准的方法来实现这一点,使用多个数据源(最好使用加载器)填充列表视图?
编辑:
-
Dates表可能有多个记录(具有不同的值) 对于每个关联的Stack。 - 我有一个 ContentProvider 可以访问所有三个表,具体取决于 URI
- 我也很乐意使用多个加载器,因为我怀疑无论如何我都必须这样做,因为我需要在片段中显示与
ListView中的内容无关的其他信息。
【问题讨论】:
标签: android android-contentprovider listadapter android-cursorloader