17

私の意図は、アンドロイドを使用して連絡先をソート順に表示することです。content resolver

そのために私は書いています:

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

で要素を並べ替えるには、クエリ メソッドの最後のパラメーターが null であってはなりませんName。名前で並べ替えるには、コードのどの部分を null パラメーターに置き換える必要がありますか?

4

4 に答える 4

39

名前に従って結果をソートするには、メソッドの最後のパラメーターとしてPhone.DISPLAY_NAME定数を使用します。次のようにします。ASCquery

  Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                   null, 
                   ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?",
                   new String[] { id },
                   ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");
于 2012-12-11T06:36:04.050 に答える
14

Upper()大文字と小文字の両方の連絡先名の並べ替えに使用できます。

ContentResolver cr = getContentResolver();

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
        null, null,  "upper("+ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + ") ASC");
于 2014-06-30T11:52:31.707 に答える
14

API レベル 11 以降では、 SORT_KEY_PRIMARYまたはSORT_KEY_ALTERNATIVEを使用することをお勧めします。

Cursor cursor = getContentResolver().query(
    ContactsContract.Contacts.CONTENT_URI,
    null, null, null,
    ContactsContract.Contacts.SORT_KEY_PRIMARY + " ASC");
于 2015-01-16T15:52:05.023 に答える