Tzoreol Posté(e) 3 mai 2011 Share Posté(e) 3 mai 2011 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 More sharing options...
Tzoreol Posté(e) 3 mai 2011 Auteur Share Posté(e) 3 mai 2011 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.