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.
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.
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());
Pourquoi? je ne comprend pas
cédric
Partager