私の意図は、Androidでcontent resolver
を使用して並べ替え順序で連絡先を表示することです。
そのために私は書いています:
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?", new String[] { id }, null);
要素をName
でソートするには、クエリメソッドの最後のパラメータがnullにならないようにする必要があります。名前による並べ替えを実現するには、コードのどの部分をnullパラメーターに置き換える必要がありますか?または、そのような場合にクエリを実行するのを手伝ってください...
前もって感謝します
名前に従って結果を並べ替えるには、ASC
メソッドの最後のパラメーターとしてquery
を指定してPhone.DISPLAY_NAME
定数を使用します。次のようにします。
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?",
new String[] { id },
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");
Upper()
を使用して、小文字と大文字の両方の連絡先名を並べ替えることができます。
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, "upper("+ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + ") ASC");
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");