【问题标题】:CursorLoader, get URI for local databaseCursorLoader,获取本地数据库的 URI
【发布时间】:2012-09-11 05:09:53
【问题描述】:

我是一名新手 android 程序员,我最近学习了一个教程,该教程展示了如何创建本地 SQLite 数据库,然后使用 SQLiteDatabase.rawQuery 访问数据库以返回光标。我想修改我的应用程序以使用 CursorLoader 这显然是访问数据库的更好方法。 我的问题是 CursorLoader 构造函数需要一个 URI。我只输入“file:///[db 路径]”吗?好像有点乱。

【问题讨论】:

  • 为了完整起见,您应该发布教程的链接

标签: android sqlite uri android-cursorloader


【解决方案1】:

游标加载器接受 URI 的原因是它希望查询 contentProvider 而不是原始数据库。

所以我建议你创建一个在内部使用你的数据库的内容提供者,这样你就可以直接使用 CursorLoader 类了。

使用内容提供者的优势在于它可以更好地封装您的数据,并且您可以轻松地直接利用来自 android 的大量 api。

这里有一些关于如何创建内容提供者的指南

http://developer.android.com/guide/topics/providers/content-provider-creating.html

http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

如果您选择不创建 ContentProvider,您可以直接扩展 AsyncTaskLoader 或游标加载器,以您想要的方式查询数据。

【讨论】:

    【解决方案2】:

    查看 CommonsWare 的 LoaderEx 库。它允许您将Loader 与本地SQLiteDatabase 一起使用,因此您不必费心创建自己的ContentProvider

    【讨论】:

    • 我想至少让我自己的 ContentProvider 实现工作,因为它似乎是做事的“标准”方式,即使它对于小型独立应用程序来说似乎有些夸张。但是,一旦我了解了基础知识,我会在某个时候看看这个库。
    • 来自 git:THIS PROJECT IS DISCONTINUED. Use it at your own risk. If you are maintaining a public fork that you would like others to consider using, add an issue asking for a link to your fork from this README.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2017-02-01
    • 2012-09-02
    • 1970-01-01
    • 2014-06-09
    • 2015-03-31
    相关资源
    最近更新 更多