2010-07-01 222 views
-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. 如果我將我的課程擴展到內容提供者,我的數據庫文件會有點兒搞砸了,有沒有更簡單的方法?

但是,它顯示不存在one.two.databases的錯誤。

回答

5

您可能希望從這裏開始:

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

的一些特殊技巧,以幫助:

首先,你的URI是不是到數據庫文件的路徑。它以「content://」開頭,然後有權限,最後是數據庫名稱(通常)。

您的權限是您提供的名稱,通常您的包名稱以'provider'結尾。所以你的可能是one.two.provider。

然後你會在你的項目中創建一個新的類,比如MyProvider.java。按照鏈接上的示例,瞭解您的提供者要實際提供數據的操作。

最後,在AndroidManifest.xml文件你會做這樣的事情:

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

這告訴Android操作系統勾你的權威(one.two.provider)到你的類。

+0

香港專業教育學院創建了自己的內容提供商了。但是,它仍然不起作用,並且不顯示我的列表視圖。我應該爲此寫些什麼? public static final String CONTENT_TYPE = null; 我不認爲它爲空。 – UserA 2010-07-02 01:41:05

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" >