19

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

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

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

在我访问Android 帮助了解如何执行此操作之前,我从未使用过 Content Providers。

第 1 点指出:

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

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

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

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

4

3 回答 3

10

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

除了上述 GitHub 项目提供的示例之外,您还可以查看我的一个测试应用程序(也在 GitHub 上),使用没有 Content Provider 的 Loaders。

于 2012-08-21T16:15:15.907 回答
8

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

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

于 2013-01-18T14:40:08.573 回答
0

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

于 2014-12-12T15:52:20.357 回答