62 votes

Obtenir seulement l'adresse e-mail de la liste de contacts Android

Je veux afficher uniquement les noms de contact dont l'adresse e-mail est présente. Sinon, ce nom de contact ne doit pas être affiché dans la liste. Comment puis-je faire cela? Est-ce que quelqu'un pourrait s'il vous plaît m'aider?

0voto

DragonFire Points 496

Déclarer une variable globale

// Tableaux de hachage
Map nameEmailMap = new HashMap();

Ensuite, utilisez la fonction ci-dessous

private void getEmailIDs() {

    Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, null, null, null);

    // Parcourir tous les e-mails
    while (emails.moveToNext()) {

        String name = emails.getString(emails.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        String email = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));

        // Entrer dans le tableau de hachage
        nameEmailMap.put(email, name);

    }

    // Obtenir le contenu du tableau de hachage dans le journal
    for (Map.Entry entry : nameEmailMap.entrySet()) {
        String key = entry.getKey();
        Log.d(TAG, "E-mail :" + key);
        String value = entry.getValue();
        Log.d(TAG, "Nom :" + value);
    }
    emails.close();
}

Rappelez-vous que dans l'exemple ci-dessus, la clé est l'e-mail et la valeur est le nom, donc lisez vos contenus comme mahaXXXX@gmail.com->Mahatma Gandhi au lieu de Mahatma Gandhi->mahaXXXX@gmail.com

0voto

lrAndroid Points 1889

Si vous pouvez déjà obtenir les contacts et leur adresse e-mail (si elle existe), pourquoi ne pas simplement supprimer les contacts sans adresse e-mail de votre liste?

Voir ici pour plus d'informations sur l'API des contacts Android.

0 votes

Hé merci IrAndroid. Oui je suis en train de le faire. Mais je reçois tous les noms de contact. Pouvez-vous s'il vous plaît me montrer un peu de code pour ça?

0 votes

Voici une question similaire à ce que vous demandez : stackoverflow.com/questions/5205999/….

0 votes

Bonjour, j'ai essayé ce code donné sur ce lien. Mais je reçois une adresse e-mail. Pas de nom. Je veux obtenir les noms de contact si l'adresse e-mail existe. Pouvez-vous me donner un peu de code? Ainsi, je peux avoir une idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X