0

私はいつも次のようなコードを書きます:

Cursor c = getContentResolver().query(uri, 
        PHONE_LOOKUP_PROJECTION, null, null, null);

if (c != null) {
    if (c.moveToFirst()) { 
        bundle.contactId = c.getLong(LOOKUP_ID_COLUMN_INDEX);
        bundle.name = c.getString(LOOKUP_DISPLAY_NAME_COLUMN_INDEX);
    }


    c.close();
}

cしかし、がNULLであるかどうかを確認する必要がある場合は、2倍にします。値クエリは、何も含まれていない場合でも、常にnullではないように感じるためです。

4

1 に答える 1

2

将来、特にデータソースへの再クエリやデータ更新を行うときにカーソル関連のクラッシュを回避したい場合は、nullをチェックする必要があります(できれば「必須」のグローを作成してジャンプします)。 。あなたは今それをきちんとやっています。常にnullをチェックし、moveToFirst()によって返されるブール値を常にチェックします。

于 2012-04-10T05:07:14.237 に答える