我正在尝试从Android中提取联系人列表,该列表正确返回。返回的列表按字母顺序排序,但大写字母首先跟小写字符。例。 ABCDEFGHIJ ..... ABCDEF
以下是我正在使用的光标:
Cursor cursor = contentResolver.query(CONTENT_URI, null,null, null, "display_name ASC");
答案 0 :(得分:3)
使用display_name COLLATE NOCASE ASC命令记录不区分大小写。
答案 1 :(得分:0)
使用我的代码
private void getContactList() {
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PROJECTION, null, null,
"display_name COLLATE NOCASE ASC");
if (cursor != null) {
HashSet<String> mobileNoSet = new HashSet<String>();
try {
final int nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
final int numberIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String name, number;
while (cursor.moveToNext()) {
name = cursor.getString(nameIndex);
number = cursor.getString(numberIndex);
number = number.replace(" ", "");
if (!mobileNoSet.contains(number)) {
contactList.add(new Contact(name, number));
mobileNoSet.add(number);
}
}
} finally {
cursor.close();
}
}
}