0

同じ連絡先のメールが3通あります。このメールをAndroidの電話帳に更新する必要があります。問題は、これを実行しようとすると、3つの電子メールが同じように更新されることです。3通のメールの滞在は同じです。メールを区別する方法はありますか?

これが私のコードです

if(numEmails>1){
     int auxNumEmails=1;
     String tagEtEmail = "ete";
     String tagBtnLabelEmail = "btnLabelMail";
     //Determinar o número de email do content
     do{
         EditText etEmail = (EditText)contentEmail.findViewWithTag(tagEtEmail);
         Button etBtnLabelEmail = (Button)contentEmail.findViewWithTag(tagBtnLabelEmail);
         String stEtEmail = etEmail.getText().toString();
         String stBtnLabelEmail = etBtnLabelEmail.getText().toString();
         values.clear();

         String mailWhere = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?" + ContactsContract.CommonDataKinds.Email.DATA+"=?"; 
         String[] mailWhereParams = new String[]{String.valueOf(idContacto),ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, "2"}; 
         values.put(ContactsContract.CommonDataKinds.Email.DATA,stEtEmail);

         if(stBtnLabelEmail == "Residência"){
         values.put(ContactsContract.CommonDataKinds.Email.TYPE,ContactsContract.CommonDataKinds.Email.TYPE_HOME);
         values.put(ContactsContract.CommonDataKinds.Email.LABEL,stBtnLabelEmail);
         }
         else
             if(stBtnLabelEmail == "Emprego"){
                 values.put(ContactsContract.CommonDataKinds.Email.TYPE,ContactsContract.CommonDataKinds.Email.TYPE_WORK);
                 values.put(ContactsContract.CommonDataKinds.Email.LABEL,stBtnLabelEmail);
             }
         **cr.update(ContactsContract.Data.CONTENT_URI, values, mailWhere, mailWhereParams);**

     tagEtEmail = "ete"+auxNumEmails;
     tagBtnLabelEmail = "btnLabelMail" + auxNumEmails;
     auxNumEmails++;

     }while(auxNumEmails<=numEmails);

メールを区別する方法が必要です。Id?しかし、どのように?

4

1 に答える 1

0

同じ連絡先の異なるメールを区別するために使用するソリューションは、タグ属性を使用することです。各電子メールには、それぞれを区別できる異なるタグがあります。

于 2012-09-12T15:55:15.293 に答える