内容提供商

时间:2010-07-01 03:06:29

标签: android listview android-contentprovider

我遇到内容提供商的问题。我正在尝试创建一个内容提供商。

    public static final Uri CONTENT_URI = 
               Uri.parse("content://data/data/one.two/databases");

这导致我的数据库,因为我想从中提取数据并在列表视图中显示它。 之后,我必须编辑插入提供者的清单

<provider android:name="databases789"
    android:grantUriPermissions="true"
    android:enabled="true"
    android:syncable="true" 
    android:authorities="one.two.databases" >
</provider> 
  1. 我的URI是否已正确解析?
  2. 如果我将我的课程扩展到Content Provider,我的数据库文件会有点搞砸,有更简单的方法吗?
  3. 但是,它显示了没有one.two.databases存在的错误。

2 个答案:

答案 0 :(得分:5)

您可能想从这里开始:

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

一些提供帮助的具体提示:

首先,您的URI不是数据库文件的路径。它以“content://”开头,然后具有权限,最后是数据库名称(通常)。

您的权限是您提供的名称,通常是您的包裹名称,最后是“提供者”。所以你的可能是one.two.provider。

然后你在项目中创建一个新类,比如MyProvider.java。按照那里的链接示例,了解您的提供商要做什么来实际提供数据。

最后,在您的AndroidManifest.xml文件中,您可以执行以下操作:

<provider
    android:authorities="one.two.provider"
    android:name="MyProvider"
></provider>

这告诉Android操作系统将您的权限(one.two.provider)挂钩到您的班级。

答案 1 :(得分:1)

您必须在自己AndroidManifest.xml的{​​{1}}中指定内容提供商的名称。

ContentProvider