联系人大写后跟小写

时间:2016-07-11 08:40:26

标签: android

我正在尝试从Android中提取联系人列表,该列表正确返回。返回的列表按字母顺序排序,但大写字母首先跟小写字符。例。 ABCDEFGHIJ ..... ABCDEF

以下是我正在使用的光标:

Cursor cursor = contentResolver.query(CONTENT_URI, null,null, null, "display_name ASC");

2 个答案:

答案 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();
        }
    }
}