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 :

Ajouter une propriété à un contact


Sujet :

Android

  1. #1
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut Ajouter une propriété à un contact
    Salut, je cherche un moyen pour ajouter une propriété à mes contacts (par exemple couleur des yeux...)

    J'ai bien trouvé certaines choses sur internet mais je ne comprend pas tout.

    Ce que je pensais avoir trouvé de bien me donnait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Builder builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,0)
    .withValue(ContactsContract.Data.MIMETYPE,"couleur des yeux")
    .withValue("data1","bleu")
    Mais comment mettre ça en forme si je veux appliquer cela à un contact déjà existant par exemple?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    La liste de tes contacts est stockée dans une table en base de données qui a une structure (des colonnes) bien précises. Tu peux au mieux utiliser certaines colonne non-utilisées (DATA1--->DATA15*) pour y stocker ton information sur la couleur des yeux, mais de toute façon l'application "Carnet d'adresse" installée sur le téléphone n'a pas été prévu pour en tenir compte... Pour cette raison, il faudrait développer ta propre application "Carnet d'adresse".


    [*] Attention, rien ne dis qu'ils ne sont pas déjà utilisés par certaines applications installées. Dans le doute, mieux vaut utiliser DATA14 que DATA1 par exemple.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ContentValues values = new ContentValues();
    values.put(Data.RAW_CONTACT_ID,Raw_contact_id);
    values.put(Data.MIMETYPE, "vnd.android.cursor.item/couleuryeux");
    values.put(Data.DATA1, "bleu");
    getContentResolver().insert(Data.CONTENT_URI, values);
    Voila ce que j'ai trouvé, avec ca je crée bien une nouvelle donnée "vnd.android.cursor.item/couleuryeux" contenant sur la DATA1 la valeur "bleu", le tout pour le contact correspondant a Raw_contact id, non?

    Et j'ai une autre question, si je veux récupérer les contacts uniquement avec cette propriété insérée comment faire?

    Je pense bien passer par un curseur mais je ne sais pas quoi mettre comme parametre de selection dans la fonction query..

    Merci

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Je tente :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getContentResolver().query(Data.CONTENT_URI, new String[] {Data.RAW_CONTACT_ID} , Data.DATA1 + " IS NOT NULL", null, null);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    Ça me retrouve l'ensemble des contacts qui ont une "DATA1" mais la DATA1 ne correspond pas uniquement a la couleur des yeux je crois

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    C'est pour cela que je t'avais dis de le mettre en DATA14...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    Merci, oui d'accord en effet je comprend maintenant l’intérêt...

    Et donc pas d'autre moyen plus "précis" existe?

    Par exemple, quand je récupère sur mon cursor l'ensemble de mes contacts je peux retrouver ceux ayant la propriété "couleur des yeux en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (cursor.getString(cursor.getColumnIndex(Contacts.Data.MIMETYPE)).equals("couleur des yeux"))
    "

    Il n'a a pas un moyen de faire quelque chose de similaire mais directement lors de la déclaration du cursor?

  8. #8
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Bah fais le au niveau de la requête SQL.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  9. #9
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    C'est à dire?
    Car javais déjà essayé ça mais sans succés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cursor cursor = getContentResolver().query(Data.CONTENT_URI, null , Contacts.Data.MIMETYPE + "= vnd.android.cursor.item/lolo2juin" , null, null);

  10. #10
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Essayes de créer ta requête plus proprement, comme ceci :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    Cursor cursor = getContentResolver().query(Data.CONTENT_URI, new String[]{Phone.NUMBER}, Data.MIMETYPE + "= '?'" , new String[]{"vnd.android.cursor.item/lolo2juin"}, null);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  11. #11
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Plutôt:

    Data.MIMETYPE + "= ?"
    (sans les quotes)

    Non ?

  12. #12
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    Sans les quotes ça marche en effet merci

  13. #13
    Membre averti
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Par défaut
    Salut,
    Une nouvelle petite question, est-il possible de rajouter ce parametre a chaque nouvelle entree dans le phonebook?

    edit : En fait deux questions :
    Comment faire pour supprimer un parametre que j' ai ajoute precedemment?


    Merci d'avance

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/10/2009, 17h03
  2. Ajouter une propriété a un object du framework
    Par damyrid28 dans le forum Framework .NET
    Réponses: 4
    Dernier message: 30/09/2009, 16h32
  3. Ajouter une propriété à un composant
    Par aliwassem dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/03/2008, 18h56
  4. ajouter une propriété name
    Par butch dans le forum Delphi
    Réponses: 6
    Dernier message: 16/05/2006, 17h18
  5. [active X] ajouter une propriété
    Par Blo0d4x3 dans le forum MFC
    Réponses: 4
    Dernier message: 22/09/2004, 09h47

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