2014-02-13 5 views
0

Я хочу получить все контакты, а затем поместить их в разных arraylist в зависимости от того, была ли она снята или нет. Я пытаюсь извлечь все контакты и сделать их отображения отдельно на основе, являются ли они помечали или нелюбимый контакт 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()); 
     } 

переменная звезда всегда утратившая на получение значения переменного он бросает исключение.

Может ли кто-нибудь сказать мне, как узнать, что контакт с кликером снят или нет после извлечения всех данных контакта?

+0

У меня есть все данные, полученные после итерации с помощью курсора. Я хочу получить/знать, что контакт снят или нет .. как я получаю имя и все. –

ответ

2

Если вы хотите запросить столбец STARRED от курсора, вы должны включить его в projection.

+0

Нет .. я хочу получить все контакты, после чего я узнаю звездную ценность. то есть, смотрит ли этот контакт или нет, поэтому я могу поместить их в другую группу. В зависимости от того, смотрит ли он или нет. –

+0

Вы запрашиваете столбцы «ContactsContract.Contacts._ID», ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.PHONETIC_NAME' из базы данных - это «звездное» значение, включенное в один из трех столбцов? – Smutje

+0

вы видите, что мой курсор имеет все данные, полученные позже после итерации с помощью курсора, который я хочу получить/знать, чтобы связать контакт с избранным или нет .. например, как я возвращаю имя и все. –

1

Я пойду с ответом Smutje, вам нужно добавить STARRED к проекции, если мы неправильно поняли вашу проблему.

+0

Я знаю, что могу это сделать, но тогда я получу только избранные контакты, но это не то, что я хочу. Я хочу получить все контакты, а затем поместить их в разных arraylist в зависимости от того, является ли она снята или нет. –

+0

Я говорю вам, чтобы поле STARRED в проекции не было в выборе. Вы все равно получите все свои контакты. Или, может быть, я ошибочно понял. –

Смежные вопросы