1

我有一个 ListView,我在其中获取所有电话联系人。在 ListView 中,我放置了一个按钮,然后单击该按钮,该联系人应添加到收藏夹中,然后再次单击应从收藏夹中删除。
在这里,我找到了使用最喜欢的标签添加新联系人的代码。但是如何在单击按钮时执行此操作。我尝试过使用此代码:

代码:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        int rawContactInsertIndex = ops.size();

        ops.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                .withValue(RawContacts.ACCOUNT_TYPE, null)
                .withValue(RawContacts.ACCOUNT_NAME, null)
                .withValue(RawContacts.STARRED, true).build());
        ops.add(ContentProviderOperation
                .newUpdate(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
                        rawContactInsertIndex)
                .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
                .withValue(Phone.NUMBER, "91-0000000002").build());
        ops.add(ContentProviderOperation
                .newUpdate(Data.CONTENT_URI)
                .withValueBackReference(Data.RAW_CONTACT_ID,
                        rawContactInsertIndex)
                .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
                .withValue(StructuredName.DISPLAY_NAME, "Maulik patel").build());

使用此代码将所有联系人添加到收藏夹
谢谢

4

2 回答 2

2

这是我最喜欢的特定联系人的工作。

ContentValues values = new ContentValues();
        String[] fv = new String[] { "juned" };
        values.put(Contacts.STARRED, 1);
        getContentResolver().update(Contacts.CONTENT_URI, values,
                Contacts.DISPLAY_NAME + "= ?", fv);

只需将 1 更改为 0 即可。

于 2012-11-22T12:28:02.880 回答
2

我需要使用特定联系人 ID 而不是联系人姓名向收藏夹联系人添加/删除,所以我修改了 juned 的代码,这里是:

int contactId = 10;    // some contact's ID

ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.STARRED, 1);
getActivity().getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values,
    ContactsContract.Contacts._ID + "= ?", new String[] { String.valueOf(contactId) });

不同之处在于您只需将 更改DISPLAY_NAME_ID

于 2014-02-27T13:29:08.873 回答