-2

コンテンツ プロバイダーに問題があります。コンテンツ プロバイダーを作成しようとしています。

    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 に拡張すると、データベース ファイルがめちゃくちゃになります。もっと簡単な方法はありますか?

ただし、one.two.databases が存在しないというエラーが表示されます。

4

2 に答える 2

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 OS に、権限 (one.two.provider) をクラスにフックするように指示します。

于 2010-07-01T15:19:40.887 に答える
1

AndroidManifest.xml独自の にコンテンツ プロバイダの名前を指定する必要がありますContentProvider

<provider android:name="com.app.MyContentProvider"
android:grantUriPermissions="true"
android:enabled="true"
android:syncable="true" 
android:authorities="com.app.authorities.data" >

于 2014-09-20T04:02:53.527 に答える