1

所以我想做的是在另一个活动中显示我的数据库并添加一个 onItemClickListener。然后我通过使用 URI 将我的信息发送到另一个类。我正在检索收件人类中的 uri 并使用它来创建光标。当我尝试使用 getContentResolver().query() 初始化我的游标时,我的日志中出现空指针异常。代码行如下所示:

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);
4

3 回答 3

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 
于 2013-01-07T04:23:05.813 回答
0

你可以试试这个

Cursor cursor = getApplicationContext().getContentResolver().query(uri, null, null, null, null);
于 2013-01-07T04:23:52.377 回答
0

这段代码

Cursor cursor = getApplicationContext().getContentResolver().query(uri, null, null, null, null);

做这项工作。之前不要调用你的函数oncreate

于 2014-08-17T18:39:32.857 回答