bonjour,
Je suis en train d'essayer de modifier des valeurs d'un contact se trouvant dans ContactsContract. Les modifications s'effectuent plus ou moins correctement, pour chaque classes imbriquées, il prend seulement la dernière modification et enregistre le type et la valeur à l'ensemble de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    				String orgWhere ;
    				String[] orgWhereParams ;
//email travail GENERAL
        			orgWhere = Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
        			orgWhereParams = new String[]{ CONTACT_ID, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE};
        			ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
        			          .withSelection(orgWhere, orgWhereParams)
        			          .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
					          .withValue(ContactsContract.CommonDataKinds.Email.DATA, mailgenerale_modif.toString())
        			          .build());
        			//email travail perso
        			orgWhere = Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
        			orgWhereParams = new String[]{ CONTACT_ID, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE};
        			ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
        			          .withSelection(orgWhere, orgWhereParams)
        			          .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM) //personnaliser l'intitulé
						      .withValue(ContactsContract.CommonDataKinds.Email.LABEL, "Email personnel") //spécifié le nom du label
						      .withValue(ContactsContract.CommonDataKinds.Email.DATA, mail_modif.toString())
        			          .build());
dans cet exemple, il prend donc en compte le label "Email personnel" et la valeur mail_modif et l'applique sur le TYPE_WORK en le transformant en label idem pour la valeur.
Pourquoi? je ne comprend pas

cédric