对不起,也许很差的标题,不知道如何描述这个好。从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