IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Mise à jour Contacts


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut Mise à jour Contacts
    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());
     
     
             }

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut
    J'ai trouvé comment faire, l'erreur venais surement du fait que je récupérais la mauvaise id : celle des contacts au lieu de celle de Data je vous poste le code corrigé :
    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
     
    		 ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
     
    		 String where = ContactsContract.Data.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(Data.LOOKUP_KEY));
    			 ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
    					 .withSelection( Data.LOOKUP_KEY + " = ? AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "'"
    							 , new String[]{String.valueOf(idCont)})
    					 .withValue(Email.ADDRESS, email)
    					 .build());
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour contact
    Par aimcont dans le forum SharePoint
    Réponses: 9
    Dernier message: 10/06/2011, 14h48
  2. Mise à jour automatique du fichier contact sous Windows mail
    Par mf190 dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 26/09/2008, 22h42
  3. Mise à jour contacts avec MySQL
    Par pbatty1 dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 26/02/2008, 12h31
  4. Réponses: 2
    Dernier message: 12/02/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo