Подтвердить что ты не робот

Отображение контактов в порядке сортировки ContactsContract.Contact of Content Resolver

Я намерен отображать контакты в порядке сортировки с помощью content resolver в android.

Для этого я пишу:

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

Необходимо, чтобы последний параметр в методе запроса не был пустым для сортировки элементов Name. Какую часть кода мне нужно заменить нулевым параметром, чтобы добиться сортировки по имени? Или, пожалуйста, помогите мне в таком случае...

Заранее спасибо

4b9b3361

Ответ 1

Чтобы отсортировать результат в соответствии с именем, используйте Phone.DISPLAY_NAME constant с ASC как последний параметр для метода query. сделайте это как:

  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

Вы можете использовать Upper() для сортировки как для нижнего, так и для имени контакта в верхнем регистре.

ContentResolver cr = getContentResolver();

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

Ответ 3

Лучше использовать SORT_KEY_PRIMARY или SORT_KEY_ALTERNATIVE на уровне API 11 и более поздних версий.

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

Ответ 4

Метод ContentResolver.query() принимает много аргументов, но для сортировки записей поставщика контента необходимо отредактировать последний аргумент этого метода.

enter image description here

Это должно быть так:

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

Это упорядочит контакты в порядке возрастания их имени.

Примечание. Этот аргумент должен иметь тип данных String.