「ふりがなでソートがしたい」のメモです。
managedQuery()メソッドを使用してリスト表示していました。
ふりがなソートを行うにあたり以下の情報で、
苗字/名前のふりがなが参照できます。
android.provider.ContactsContract.CommonDataKinds.StructuredName
PHONETIC_FAMILY_NAME
PHONETIC_GIVEN_NAME
それそを以下のsortOrderで指定すればソート完成!
managedQuery(uri,projection,selection,selectionArgs,sortOrder)
となるのですが、ふりがな情報と、別のクラスの情報を選択して表示する場合、
selection で設定ができませんでした。
よく見てみると、それぞれのクラスには「CONTACT_ID」データがあるので、
それを使えば他のクラスのデータと関連した選択が可能になるらしい。
以上を踏まえた結果、以下のコードのようになりました。
Cursor c1 = managedQuery(uri, projection,Data.MIMETYPE + "=?",new String[] { StructuredName.CONTENT_ITEM_TYPE },StructuredName.PHONETIC_FAMILY_NAME + " ASC ,"+ StructuredName.PHONETIC_GIVEN_NAME + " ASC");while (c1.moveToNext()) {Cursor c2 = managedQuery(uri, projection,Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",new String[] { c1.getString(0),Event.CONTENT_ITEM_TYPE},null);while (c2.moveToNext()) {//出力の記述}}
0 件のコメント:
コメントを投稿