1

我有两个 SQLite 表:
Service: sid (prim.key), workDesc, title
ServiceInstance: ssid (prim.key), sid(foreign key), date, workComment, odometer

今天我使用 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 是否有意义?

4

1 回答 1

0

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

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

<provider
    ....
    android:exported="false">
</provider>

在你的清单中

于 2013-06-05T06:04:47.130 回答