2014-02-13 2 views
0

나는 모든 연락처를 검색하고 별표 여부에 따라 다른 arraylist에 넣어 싶습니다. 나는 모든 연락처를 retreive 위해 노력하고 그들이 출연 여부에 근거하여 별도로 표시를 할 또는좋아하는 연락처 fr0m 연락처 db

contactId=8333; 
Uri uri = ContactsContract.Contacts.CONTENT_URI; 

    String[] projection = new String[] { ContactsContract.Contacts._ID, 
    ContactsContract.Contacts.DISPLAY_NAME, 
    ContactsContract.Contacts.PHONETIC_NAME }; 
    String selection = ContactsContract.Contacts._ID + " = ?"; 
    Cursor cur= mContext.getContentResolver().query(uri, projection, selection, 
       new String[] {contactId}, null); 
    if (cur != null && cur.moveToFirst() && cur.getCount() > 0) { 

int idIndex = cur.getColumnIndex(ContactsContract.Contacts._ID); 

int displayNameIndex = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); 

int phoneticNameIndex = cur.getColumnIndexOrThrow(ContactsContract.Contacts.PHONETIC_NAME); 

do { 

    String id = cur.getString(idIndex); 
    String name = cur.getString(displayNameIndex); 
    String star=cur.getString(cur.getColumnIndex(ContactsContract.Data.STARRED)); 
    String value=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.STARRED)); 

         } while (cur.moveToNext()); 
     } 

변수 별은 항상 null되지 않으며 변수 값을 검색에 예외가 발생하고있다.

누군가 모든 연락처 데이터를 검색 한 후 별표가 표시되는지 여부를 알 수 있습니까?

+0

내 커서는 커서를 통해 반복 한 후 검색된 모든 데이터를 가지고 있습니다. 연락처가 별표 표시되는지 여부를 검색하거나 알고 싶습니다. 이름과 전체를 검색하는 방법과 비슷합니다. –

답변

2

커서에서 STARRED 열을 요청하려면 projection에 입력해야합니다.

+0

No..i 모든 연락처를 검색하려면 Wana는 별표 값을 알고 있습니다. 즉 그 연락처가 쳐다 보든 그렇지 않든 나는 다른 그룹에 넣을 수 있습니다. 쳐다 보든 안했는지에 따라 다릅니다. –

+0

데이터베이스에서 'ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.PHONETIC_NAME' 열에 세 개의 열 중 하나에 포함 된 별표 표시된 값을 요청 하시겠습니까? – Smutje

+0

당신은 커서를 통해 iterating 후 지금 내 모든 커서를 retreieved 참조하십시오 연락처를 검색하거나 밀접하게 연락하고 싶지 않거나 ... 어떻게 retreiving 이름과 같은 오전. –

1

나는 스무 티 (Smutje) 답으로 갈 것이고, 문제를 잘못 이해하지 않는 한, 당신은 영사에 STARRED를 추가해야 할 것이다.

+0

나는 내가 그걸 할 수 있지만, 그때 나는 별표를 붙인 접촉을 얻을 것이다. 그러나 thats는 내가 원하는 것을 아니다. 모든 접촉을 검색하고 싶다. 별표 여부에 따라 다른 arraylist에 넣고 싶다. –

+0

STARRED 필드를 선택 항목이 아닌 투영에 넣으라고합니다. 당신은 여전히 ​​귀하의 모든 연락처를 얻을 것이다. 또는 내가 잘못 이해되었을 수 있습니다. –

관련 문제