Tzoreol Posted May 3, 2011 Share Posted May 3, 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 Link to comment Share on other sites More sharing options...
Tzoreol Posted May 3, 2011 Author Share Posted May 3, 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); Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.