Bonjour à tous et bonne fête.
Je suis nouveau en dév Android et je dois faire une appli avec une fonctionnalité qui doit mettre à jour les Contacts. J'arrive à insérer un contact sans soucis mais lorsque je veut mettre à jour un contact il me met à jour tous les champs(nom,tel,mail) avec la même valeur(qui est ici la valeur de l'email) alors que je ne précise que l'update de l'email. Je suis complètement perdu. J'ai regardé sur plusieurs forums, la doc Android et tous disent de faire de cette manière. Je m'y prends surement mal mais je n'arrive pas à trouver d'ou cela proviens.
Merci de votre Aide.
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
22 ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); String where = ContactsContract.Contacts.DISPLAY_NAME + " = ?"; String[] whereArgs = new String[] {nom}; Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); Uri contactUri = intent.getData(); Cursor cursor = getContentResolver().query(contactUri, null, where, whereArgs, null); if (cursor.moveToFirst()) { String idCont = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) .withSelection(Data.LOOKUP_KEY +" = ?", new String[]{String.valueOf(idCont)}) .withValue(Email.ADDRESS, email) .build()); }
Partager