1

だから私がやろうとしているのは、別のアクティビティでデータベースを表示し、onItemClickListener を追加することです。次に、URI を使用して別のクラスに情報を送信しています。受信者クラスで uri を取得し、それを使用して Cursor を作成しています。getContentResolver().query() を使用して Cursor を初期化しようとすると、ログ内に nullpointerexception が発生します。コード行は次のようになります。

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

私が使用している uri 変数は、次のコード行から取得されます。

Uri uri = getIntent().getData();

ある種の uri が返されていることを確認するために、ログに uri を出力し、次のように取得しました。

これが私のログです:

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

仕事をします。の前に関数を呼び出さないでくださいoncreate

于 2014-08-17T18:39:32.857 に答える
0

あなたはこれを試すことができます

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