使用不同的字符串更新具有相同类型(例如TYPE_HOME)的电子邮件

时间:2012-08-14 09:04:23

标签: android android-contacts contactscontract android-contentresolver

任何人都知道我如何更新同一类型的Android电话簿中的两封电子邮件

(例如:TYPE_HOME),但使用不同的字符串更新每封邮件。

以我的方式更新电子邮件,但具有相同TYPE的电子邮件同时使用相同的字符串更新,我不希望这样。

我想要什么

Email_1->TYPE_HOME->String_Hello

Email_2->TYPE_HOME->String_Hello_again

不同的字符串但类型相同。

这是我的代码

         EditText etEmail = (EditText)contentEmail.findViewWithTag("ete1");
         String stEtEmail = etEmail.getText().toString();   
         values.clear();
         Log.w(SocioEdit.class.getName(), "TESTE DO TYPE" +String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE).charAt(3));
         String mailWhere = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=? AND " + String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE) + "= ?"; 
         String[] mailWhereParams = new String[]{String.valueOf(idContacto),ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)}; 
         values.put(ContactsContract.CommonDataKinds.Email.DATA,stEtEmail);
         Log.w(SocioEdit.class.getName(),"TESTE DA STRING DO EMAIL-->" +stEtEmail); 
         cr.update(ContactsContract.Data.CONTENT_URI,values, mailWhere, mailWhereParams);
     }

1 个答案:

答案 0 :(得分:0)

我们知道电子邮件已存储在数据表中, 所以它有自己的ID,我们可以获取数据ID以及电子邮件类型和电子邮件信息

所以如果我们在数据表中收到电子邮件ID

我们可以这样做:

cr.update(ContactsContract.Data.CONTENT_URI,values, Data.id+"=?", new String[]{String.valueOf(ID)});