#android-contentprovider #android-contacts #android-syncadapter
#android-contentprovider #android-контакты #android-syncadapter
Вопрос:
Я пытаюсь показать несколько строк, поскольку мое приложение также поддерживает службы чата и звонков. Я хочу показать то же самое, что делает whatsap, как показано на рисунке ниже.
Я внедрил адаптер синхронизации и все остальное, используя некоторую помощь из разных блогов. Я успешно добавил одну строку, но мне нужно несколько строк, поскольку мы можем видеть whatsap на этой картинке. Я хочу показать несколько строк, как показано на рисунке.
Пожалуйста, посмотрите это для лучшего понимания
Для отображения только одной строки я использовал приведенный ниже код.
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
builder.withValue(RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME);
builder.withValue(RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE);
builder.withValue(RawContacts.SYNC1, contact.name);
ops.add(builder.build());
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/com.example.ajay.contacts_4");
builder.withValue(ContactsContract.Data.DATA1, contact.name);
builder.with Value(ContactsContract.Data.DATA2, "SyncProviderDemo Profile");
builder.withValue(ContactsContract.Data.DATA3, "View profile");
ops.add(builder.build());
try {
resolver.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
e.printStackTrace();
}
Ответ №1:
Я вставлял только один раз, используя ContentProviderOperation.Новое добавление, как вы можете видеть в вопросах. Но когда я добавляю несколько раз для одного и того же контакта, а затем применяю пакет. Тогда один контакт содержит несколько строк.
builder = ContentProviderOperation.newInsert (ContactsContract.Data.CONTENT_URI); builder.с обратным значением (ContactsContract.Data.RAW_CONTACT_ID, 0); builder.с значением (ContactsContract.Data.MIMETYPE, «vnd.android.cursor.item / com.example.ajay.contacts_4»); builder.withValue (ContactsContract.Data.DATA1, contact.name ); конструктор.со значением (ContactsContract.Data.DATA2, «Профиль SyncProviderDemo»); builder.со значением (ContactsContract.Data.DATA3, «Вызов» номер); ops.add (builder.build());
builder = ContentProviderOperation.newInsert (ContactsContract.Data.CONTENT_URI); builder.Со значением обратной ссылки (ContactsContract.Data.RAW_CONTACT_ID, 0); builder.Со значением (ContactsContract.Data.MIMETYPE, «vnd.android.cursor.item / com.example.ajay.contacts_4»); builder.withValue (ContactsContract.Data.DATA1, contact.name ); конструктор.со значением (ContactsContract.Data.DATA2, «Профиль SyncProviderDemo»); builder.со значением (ContactsContract.Data.DATA3, «Сообщение» номер); ops.add (builder.build()); попробуйте { resolver.applyBatch (ContactsContract.ПОЛНОМОЧИЯ, операции); } catch (исключение e) { e.printStackTrace(); }