我在联系提供商方面遇到了一些问题。我有一个昵称,存储在字符串变量 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);
}
我有错误“绑定或列索引超出范围”。
答案 0 :(得分: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);
此代码将返回第一个带有昵称的联系人姓名,该昵称存储在 text 字符串中。