【问题标题】:Do I need a Content Provider with a Cursor Loader?我需要带有游标加载器的内容提供程序吗?
【发布时间】:2012-08-21 16:03:03
【问题描述】:

我无法弄清楚如何使用 CursorLoader。

我要解决的问题是如何在 ListActivity 中显示我的 SQLite 数据库中的数据。列表行使用自定义布局,因此需要来自 3 个字段的数据(都在同一个表中)。

除了一些 Stack Overflow 问题外,我还阅读了 this blog post 并决定我需要为我的数据库创建一个内容提供程序。

在我去Android help 了解如何执行此操作之前从未使用过内容提供程序。

第 1 点状态:

如果完全在您自己的应用程序中使用 SQLite 数据库,则不需要提供程序。

所以现在我被卡住了,我似乎无法在没有 ContentProvider 的情况下使用 CursorLoader,如果 ContentProvider 仅在我的应用程序中使用,我建议不要创建它。

我目前在想,也许帮助已经过时,或者在编写时没有考虑光标加载器?

那么我是否需要继续创建一个 ContentProvider 还是有其他方法可以做到这一点?任何建议都会有所帮助!

【问题讨论】:

  • 另外我应该补充一点,我的目标是 SDK >= 14。

标签: android sqlite android-contentprovider


【解决方案1】:

简短的回答是,您可以使用自己的 Loader 来跳过对 Content Provider 的需求,并直接与 SQLite 数据库交互。其他人已经完成了实现,其中一个由CommonsWare完成,称为LoaderEx。该项目有一个名为 SQLiteCursorLoader 的类,您可能会发现它很有用。

除了上述 GitHub 项目提供的示例之外,您还可以使用 Loaders without a Content Provider 查看我的test applications(也在 GitHub 上)之一。

【讨论】:

    【解决方案2】:

    经过研究,我发现如果你使用内置的CursorLoader,需要一个ContentProvider。

    正如 wsanville 所说,您可以滚动自己的加载器,这样它就不需要 ContentProvider。

    【讨论】:

      【解决方案3】:

      创建 ContentProvider 非常简单。很简单,它不应该妨碍您使用 CursorLoader。这是一个将它们与简单的 ContentProvider 一起使用的快速示例:http://responsiveandroid.com/2012/03/19/using-an-android-cursor-loader-with-a-content-provider.html

      【讨论】:

        猜你喜欢
        • 2014-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-02
        • 2022-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多