我是否需要带有光标加载器的内容提供程序?

时间:2012-08-21 16:03:03

标签: android sqlite android-contentprovider

我无法解决如何使用CursorLoader。

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

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

在我前往Android help之前从未使用过内容提供商。如何做到这一点。

第1点陈述:

  

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

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

我目前正在考虑可能是帮助已经过时或者在编写时没有想到光标加载器?

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

3 个答案:

答案 0 :(得分:10)

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

除了上述GitHub项目提供的示例之外,您还可以使用没有内容提供商的加载程序查看我的test applications之一(也在GitHub上)。

答案 1 :(得分:8)

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

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

答案 2 :(得分:0)

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