如何更新特定Email._id的电子邮件地址?

时间:2014-11-27 15:06:17

标签: android listview android-contentprovider android-contacts

我有这个问题。 我有一个列表视图,根据有多少电子邮件地址有联系人创建。 现在我希望我能以特定的方式更改此电子邮件地址。 例如,如果我的一个联系人有四个电子邮件地址(one@gmail.com, 两个@ gmail.com,三个@ gmail.com,四个@ gmail.com)并修改其中一个电子邮件地址的第二个例子(two@yahoo.com)我怎么才能改变它只留下另一个?

对于每个电子邮件地址,我都有一个bean,其中包括: Email._id Email.Type Email.Data

谢谢大家的帮助。

P.S。 抱歉我的英文;)

问题不在列表视图中,而是在特定的联系人电子邮件地址中。 这是我在编辑单个电子邮件地址时使用的代码。

String emailData = "example@email.com";
            String contactId="123456";
            int typeEmail=1;

            ops.add(ContentProviderOperation
                    .newUpdate(ContactsContract.Data.CONTENT_URI)
                    .withSelection(
                            ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE
                                    + "=?",
                            new String[] { contactId, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE })
                    .withValue(ContactsContract.CommonDataKinds.Email.DATA, emailData)
                    .withValue(ContactsContract.CommonDataKinds.Email.TYPE, typeEmail).build());

我解决了它:

我只是将列更改为ContactsContract.Data.CONTACT_IDContactsContract.Data._ID

for (int i = 0; i < listEmail.size(); i++) {

                ops.add(ContentProviderOperation
                        .newUpdate(ContactsContract.Data.CONTENT_URI)
                        .withSelection(
                                ContactsContract.Data._ID + "=? AND "
                                        + COLUMN_MIMETYPE + "=?",
                                new String[] { listEmail.get(i).getId(),
                                        MIMETYPE_STRING_EMAIL })
                        .withValue(COLUMN_EMAIL, listEmail.get(i).getName())
                        .withValue(COLUMN_EMAIL_TYPE,
                                listEmail.get(i).getType()).build());
            }

0 个答案:

没有答案