Display the Contacts in sorting order ContactsContract.Contacts of Content Resolver

匆匆过客 提交于 2019-11-29 11:48:22

问题


My intention is to display the contacts in sorting order using content resolver in android.

For that i am writing:

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?", new String[] { id }, null);

It needs that the last parameter in query method should not be null for sorting the elements by Name. Which part of code I have to replace the null parameter to achieve sorting by name ? Or please help me querying in such a case...

Thanks in advance


回答1:


To sort result according to name use Phone.DISPLAY_NAME constant with ASC as last parameter to query method. do it as:

  Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                   null, 
                   ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?",
                   new String[] { id },
                   ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");



回答2:


You can use Upper() to sort for both lower as well as upper case contact name.

ContentResolver cr = getContentResolver();

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
        null, null,  "upper("+ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + ") ASC");



回答3:


It would be better to use SORT_KEY_PRIMARY or SORT_KEY_ALTERNATIVE on API level 11 and later.

Cursor cursor = getContentResolver().query(
    ContactsContract.Contacts.CONTENT_URI,
    null, null, null,
    ContactsContract.Contacts.SORT_KEY_PRIMARY + " ASC");



回答4:


The ContentResolver.query() method takes many arguments but to sort the content provider records, you have to edit the last argument of this method.

It should be like this:

Cursor cursor=getContentProvider().query(.......,"DISPLAY_NAME ASC")

This will arrange the contacts in Ascending order of their name.

Note: This argument should be in a String datatype.



来源:https://stackoverflow.com/questions/13814786/display-the-contacts-in-sorting-order-contactscontract-contacts-of-content-resol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!