안드로이드 개발 질문/답변
(글 수 45,052)
전화번호부를 만들려고 하는데 ㄱ , ㄴ, ㄷ별로 소트할려고 합니다
아래와 같이 했는데 아예 나오지를 않네요
어떻게 하면 될까요?
// 주소록 URI
Uri people = Contacts.CONTENT_URI;
// 검색할 컬럼 정하기
String[] projection = new String[] { Contacts._ID, Contacts.DISPLAY_NAME, Contacts.HAS_PHONE_NUMBER };
String selection = ContactsContract.Contacts.DISPLAY_NAME + " >= 'ㄱ' and "+ContactsContract.Contacts.DISPLAY_NAME + " <= 'ㄷ' ";
// 쿼리 날려서 커서 얻기
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return managedQuery(people, projection, selection, selectionArgs, sortOrder);




ㄱ, ㄴ 같은 초성으로 비교하면 안됩니다.
순서가 ㄱ,ㄴ,ㄷ,~~~ㅎ, 가,갸~~~~힣 이런 순서입니다.
즉 모든 연락처가 ㄷ보다 큽니다. 그래서 ㄷ보다 작은 연락처가 없겠죠. 그래서 데이터가 없는 것 입니다.
비교를 가, 나, 다 이렇게 변경하세요.
String selection = ContactsContract.Contacts.DISPLAY_NAME + " >= '가' and "+ContactsContract.Contacts.DISPLAY_NAME + " <= '다' ";