几个游标的LoaderManager / CursorLoader?

时间:2013-06-05 05:49:16

标签: android android-listview android-cursoradapter android-loadermanager android-cursorloader

我有两个SQLite表:
服务: sid(prim.key),workDesc,title
ServiceInstance: ssid(prim.key),sid(外键),日期,workComment,里程表

今天,我使用CustomAdapter扩展SimpleCursorAdapter,为ListView提供来自这些表的数据。但由于不推荐使用此方法,我希望使用LoaderManager / CursorLoader重构代码。

现在,我感到困惑的是,在ListView中,我想显示ServiceInstance表中的日期和Service表中的标题。像:
2013-06-05常规服务

我该怎么做?从现在开始,当我使用扩展的SimpleCursorAdapter类时,我将游标发送给构造函数。但是在这种情况下,当我稍微更改了数据库结构时,我需要显示来自两个不同游标(Service和ServiceInstance)的数据。

我用谷歌搜索并阅读了几个教程,但没有发现任何类似的情况。但在这里,http://www.mysamplecode.com/2012/11/android-database-content-provider.html

在声明字符串数组列的地方(步骤6,MainActivity.java:58),我可以添加列名(日期和标题),即使它们存在于不同的表中吗?

另一个问题是,我不打算将这些数据提供给其他应用,因此创建ContentProvider是否有意义?

1 个答案:

答案 0 :(得分:0)

在您的情况下,没有必要绑定到两个不同的游标(我不推荐它,因为在这种情况下您必须编写自己的适配器。)
尝试在您的表格中进行查询,请检查以获取起点:

对于第二个问题,如果您不想将ContentProvider公开给其他应用程序集:

<provider
    ....
    android:exported="false">
</provider>
你的清单中的