2011-09-16 8 views
0

다음과 같은 조건으로 연락처 데이터를 쿼리하고 연락처 이름과 전화 번호를 검색하려고합니다. 연락처에 모바일 번호가있는 경우 해당 번호를 선택하고 그렇지 않으면 임의의 번호/첫 번째 번호를 선택합니다. 연락이 있습니다. 커서 쿼리에서이 조건을 공식화 할 수 있습니까 아니면 사용자 지정 커서 어댑터 내에서 수행해야합니까?Android 커서 쿼리의 복잡한 WHERE 조건

이것은 현재 내가 가지고있는 코드입니다. 그것은 잘 작동하지만 그것은 모든 연락처에 대한 모든 숫자를 검색하므로 사람이 하나 이상의 연락처가 있다면 중복 이름을 얻을.

private String WHERE_CONDITION = ContactsContract.Data.MIMETYPE + " = '" + 
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'"; 
private String[] PROJECTION = {ContactsContract.Data.DISPLAY_NAME, 
ContactsContract.Data.DATA1, ContactsContract.Data._ID }; 
private String SORT_ORDER = ContactsContract.Data.DISPLAY_NAME; 
cursor = this.getContentResolver().query(
ContactsContract.Data.CONTENT_URI, PROJECTION, WHERE_CONDITION, null, SORT_ORDER); 

어떤 도움을 주실 까?

+0

사과, 부정적으로 태그 된 javascript. 이제 Java로 변경되었습니다. – Phat7

답변

0

Java에서이 논리를 사용하는 것이 훨씬 쉽고 간단합니다. 모든 번호를 검색하고 필요한 번호를 선택하십시오. 일반적으로 최대 3 개의 숫자가 있으며 5 일 수 있습니다. 어떤 경우에는 오버 헤드가 매우 낮습니다.

+0

죄송합니다, 위의 내 코멘트를 참조하십시오. 태그를 Java로 변경했습니다. – Phat7