我试图以排序顺序获取所有Contact
列表。我得到了所有联系人列表,但是它的第一个排序名以大写(ABCD.)开头,在对所有名称进行排序后,所有名称都以大写字母开头,然后它才开始对以小写字母(a,b,c.)开头的剩余名称进行排序。
private static final String[] PROJECTION = new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER
};
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PROJECTION,
null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
if (cursor != null) {
try {
final int nameIndex =
cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
nameContact = cursor.getString(nameIndex);
finally {
cursor.close();
}
在这里,名称是作为一个单独的两个列表排序。首先,排序所有的名称以上大写开头,在该排序名称以小写开始之后。
有谁能告诉我如何解决这个问题吗?
(预先谢谢:)
发布于 2015-12-07 21:59:57
将查询与排序规则一起使用。
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PROJECTION,
null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
https://stackoverflow.com/questions/34148977
复制相似问题