1

我对联系提供商有一些问题。我有一个昵称,它存储在字符串变量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 回答