2013-05-17 10 views
0

Мне нужно, чтобы телефонные контакты были разделены на группы в моем приложении, но только в моем приложении, поэтому я не хочу добавлять какие-либо группы в исходную базу данных контактов с телефоном. Я сделал свою собственную базу данных, чтобы иметь таблицу моих групп:Группы контактов приложений для Android

groups(group_id int, group_name text, message text) 

и contacts_group table.

contacts_group(contact_id, group_id) 

Теперь проблема я столкнулся: Как я должен создать запрос, чтобы получить все контакты из моей группы (от телефона контакта Databse).

Мне нужно что-то вроде этого: Выберите ... DISPLAY_NAME, ... NUMBER где ..._ ID в (String [] ids), в то время как String [] ids является массивом contact_ids из таблицы contacts_group. Можно ли поместить мой массив строк в '?' в сыром запросе? Как .. Выберите ... где .._ ID в?, String []? Заранее благодарим за помощь С уважением

ответ

0

Probelm решил. Решение:

public static Cursor getContactsFromGroup(String[] ids, SQLiteDatabase db) { 
     Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
     String[] projection = { ContactsContract.CommonDataKinds.Phone._ID, 
       ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
       ContactsContract.CommonDataKinds.Phone.NUMBER }; 

     Cursor c = context.getContentResolver().query(uri, projection, 
       "_ID IN (" + makePlaceHolders(ids.length) + ")", ids, null); 


    } 

где makePlacHoldes (int) помещает "?" символов, как много длинный массив параметров. С уважением

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