1

Contact Provider に問題があります。文字列変数textに保存されているニックネームがあります。ニックネームを持つユーザーの名前と姓を取得したい。しかし、それは私のコードに何か問題があります:

String _string = "no name";
Cursor cursor = getContentResolver().query(
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
    ContactsContract.CommonDataKinds.Nickname.NAME + " = " + text, new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}, null);
int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
if (cursor.moveToFirst()) {
    _string = cursor.getString(nameIndex);
}

「バインドまたは列インデックスが範囲外です」というエラーが表示されます。

4

1 に答える 1

0
Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
                      new String[]{ContactsContract.Data.DISPLAY_NAME},
                      ContactsContract.CommonDataKinds.Nickname.DATA1 + "=?",
                      new String[] { text },
                      null);

if (cursor.moveToFirst()) String nameOfContact = cursor.getString(0);

このコードは、最初の連絡先の名前とニックネームをテキスト文字列で返します。

于 2013-04-29T05:41:20.143 に答える