Aller au contenu

Afficher le numéro d'un contact


Recommended Posts

Bonjour,

J'ai le code suivant qui m'affiche une ListView avec le non des contact est un int qui affiche si ce contact à un numéro.

public class ListeContact extends ListActivity {
Cursor  mCurseur;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        Uri uri = ContactsContract.Contacts.CONTENT_URI;

        mCurseur = getContentResolver().query(uri, null, null, null, null);
        startManagingCursor(mCurseur);

        ListAdapter adapter = new SimpleCursorAdapter(
                this, // Context.
                android.R.layout.two_line_list_item, 
                mCurseur,                                             
                new String[] {ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Data.HAS_PHONE_NUMBER},
                new int[] {android.R.id.text1, android.R.id.text2});

        setListAdapter(adapter);
    }
}

J'aimerai à la place de l'int, afficher le numéro de téléphone, mais je n'arrive pas à y accéder malgré plusieurs essai, notamment avec ContactsContract.PhoneLookup.

Pourrais-je avoir une petite aide ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouvé après quelques heures de recherches supplémentaires.

Voici le code :

//On récupère la ListView du listcontact et on la place dans listContact
       listContact = (ListView) findViewById(R.id.listContact);

       //On crée la ArrayList qui va remplir la ListView
       ArrayList<HashMap<String, String>> contacts = new ArrayList<HashMap<String, String>>();

       //On crée le curseur qui va se déplacer dans nos contacts
       Cursor mCursor  = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

       //Tant que le curseur peut se déplacer
       while (mCursor.moveToNext()){

       	//On récupère l'index de la colonne ID du contact
       	String contactID = mCursor.getString(mCursor.getColumnIndex(ContactsContract.Contacts._ID));

       	//On vérifie si le contact à un numéro de téléphone
       	int hasPhone = mCursor.getInt(mCursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

       	//Si oui
       	if (hasPhone == 1){

       		//On crée le curseur qui va parcourir les numéros
       		Cursor phonesCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactID , null, null);

       		//On parcourt les numéros
       		while (phonesCursor.moveToNext()){

       			//On crée les variable de nom et numéro
       			String name = phonesCursor.getString(phonesCursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
       			String phoneNumber = phonesCursor.getString(phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

       			//On déclare la HashMap qui va contenir les informations pour un contact
       			HashMap<String,String> map = new HashMap<String, String>();

       			//On ajoute les informations
       			map.put("name", name);
       			map.put("phoneNumber", phoneNumber);

       			//On ajoute le HashMap à l'ArrayList
       			contacts.add(map);
       		}
       		phonesCursor.close();
       	}
       }
       mCursor.close();

       //Le SimplerAdapter va ajouter les éléments présents dans contacts dans les vues de contacts.xml
       SimpleAdapter adapter = new SimpleAdapter(this.getBaseContext(), contacts, R.layout.contacts, 
       						new String [] {"name","phoneNumber"},
       						new int[] {R.id.name, R.id.phoneNumber});

       //On attribut l'adapteur à la ListView
       listContact.setAdapter(adapter);

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...