對不起,也許很差的標題,不知道如何描述這個好。從myContentProvider加載URI失敗(空結果)
我寫我自己的ContentProvider稱爲DeaddropDBProvider,其中包括以下行來設置一些常數的URI來提供的內容:
public static final String PROVIDER_NAME =
"squirrel.deaddropdroid.deaddropdbprovider";
public static final Uri BLOG_URI =
Uri.parse("content://"+ PROVIDER_NAME + "/blog");
現在去這些URI,我訪問他們兩種不同的方式。一個有效,另一個失敗,我不明白爲什麼。
失敗方法:
方法1):直接調用。方法2):將URI作爲常量導入;這樣可以正常工作(縮寫代碼):
public class DeaddropDB {
public void getData(...) {
Cursor cursor = context.getContentResolver().query(DeaddropDBProvider.BLOG_URI,
columns, selection, selectionArgs, orderBy);
}
}
方法2):將URI導入爲常量;然後撥打電話。這在我嘗試使用該URI時給出了NullPointerException,因爲URI仍然爲空。
public class DeaddropDB {
public static final Uri BLOG_URI = DeaddropDBProvider.BLOG_URI;
public void getData(...) {
Cursor cursor = context.getContentResolver().query(BLOG_URI,
columns, selection, selectionArgs, orderBy);
}
}
第二種方法怎麼不起作用?爲什麼BLOG_URI爲空?
您的解決方案的問題(我認爲我自己已經被拒絕了),然後我再次硬編碼第二類中的URI。我在ContentProvider類中設置了這個URI,如果因爲某種原因我想稍後再進行更改,應該只在一個地方進行更改。我使用的解決方案已經存在。而且,這不是對這個問題的回答,「這是爲什麼它不起作用?」。 – Wouter 2011-04-17 14:20:40