2012-12-11 5 views
12

Moim zamiarem jest wyświetlenie kontaktów w porządku sortowania przy użyciu content resolver w systemie Android.Wyświetl kontakty w porządku sortowania ContactsContract.Contacts of Content Resolver

W tym piszę:

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

Potrzebuje że ostatni parametr w metodzie zapytań nie powinien być zerowy do sortowania elementów przez Name. Której części kodu muszę zastąpić parametr null, aby uzyskać sortowanie według nazwy? Albo proszę mi pomóc zapytań w takim przypadku ...

góry dzięki

Odpowiedz

30

Aby posortować wyniki według nazwy użytku Phone.DISPLAY_NAME stałej z ASC jako ostatni parametr query metody. czy to jako:

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

Czy zdajesz sobie sprawę, gdzie można znaleźć listę różnych wartości stałych do sortowania. Zakładam, że "DEC" może być odwrotnie, ale co z innymi formami sortowania? – NVA

+0

co to jest {id} tutaj? – Gibs

8

Można użyć Upper() uporządkować zarówno dolna, jak i górna nazwa przypadek kontakt.

ContentResolver cr = getContentResolver(); 

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

Czy standardowa metoda sortowania (bez użycia górnego) nadaje wagę wielkimi literami? Podobnie jak nazwy we wszystkich wersjach są PRZED małymi nazwami? Jeśli tak, czy to jest przyczyną twojej "górnej" linii kodu? Jeśli nie, to co to oznacza? – Silmarilos

8

Byłoby lepiej używać SORT_KEY_PRIMARY lub SORT_KEY_ALTERNATIVE na poziomie API 11 i późniejszych.

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

działa również na poziomie API 10: –

+0

@Hamidreza jesteś pewny? 'SORT_KEY_PRIMARY' został wprowadzony w API 11 ... –

+0

To powinna być poprawna odpowiedź. – Android