所以我要做的是在另一个活动中显示我的数据库并添加一个onItemClickListener。然后我通过使用URI发送我的信息到另一个类。我正在检索收件人类中的uri并使用它来创建一个Cursor。 当我尝试使用getContentResolver()。query()初始化我的Cursor时,我在日志中得到nullpointerexception。代码行如下所示:
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
我使用的uri变量来自这行代码:
Uri uri = getIntent().getData();
为了确保返回某种uri,我在我的日志中输出uri并得到了: content://com.example.myfirstapp.ContactProvider/CONTACT/(所选项目的ID)
这是我的日志:
01-06 21:31:43.913: E/AndroidRuntime(619): Caused by: java.lang.NullPointerException
01-06 21:31:43.913: E/AndroidRuntime(619): at com.example.myfirstapp.ContactActivity.onCreate(ContactActivity.java:22)
第22行的代码:
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
答案 0 :(得分:0)
你的行应该是这样的
Uri uri = getIntent().getData();
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
而不是
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
Uri uri = getIntent().getData();
您在初始化之前使用过uri。 并检查清单权限
android.permission.READ_CONTACTS
答案 1 :(得分:0)
此代码
Cursor cursor = getApplicationContext().getContentResolver().query(uri, null, null, null, null);
完成这项工作。请勿在{{1}}之前调用您的函数。