2011-10-21 11 views
9

Sto usando questo codice per permettere all'utente di scegliere un contatto:Android: Come scegliere più contatti

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI); 
startActivityForResult(contactPickerIntent, 1001); 

ma quello che voglio fare è quello di lasciare hime scegliere più contatti (con caselle di controllo). Come posso fare questo?

+0

Forse questo aiuta: https://github.com/1gravity/Android-ContactPicker (sono l'autore) –

risposta

14

Non sarà possibile farlo con l'opzione intent ACTION_PICK. Per implementarlo, devi utilizzare un ListView personalizzato con i contatti generati da una query al fornitore di contenuti dei contatti.

Se si desidera utilizzare l'intento Intent.ACTION_PICK, è necessario indicare all'utente di selezionarlo uno alla volta.

UPDATE:

Ci sono diversi modi per fare questo con un costume ListView. Il vecchio modo (che è compatibile con la maggior parte dei telefoni) è un po 'lungo da spiegare, ma per fortuna c'è un buon tutorial here che descrive esattamente quello che stai cercando (elenco dei contatti con la casella di controllo in un ListView personalizzato).

Con API 5 e versioni successive, esiste una classe ContactsContract che può essere d'aiuto per ottenere un elenco di contatti. Per esempio codice su come usare questo, guarda l'applicazione di esempio ContactManager di Android, in particolare la classe ContactManager e il metodo populateContactList().

L'API per la classe ContactsContract è here.

+0

Puoi aggiungere codice per fare questo? (votato +1 per la spiegazione) – Belgi

+0

@Belgi, ho aggiornato la mia risposta con diverse risorse per iniziare. Personalmente, preferisco utilizzare il metodo di query Contatti (il primo modo descritto nel tutorial collegato). –

+4

Il link del blog suggerito "http://vikasdp.wordpress.com/2011/02/06/custom-android-listview-to-read-phone-contacts/" è rotto ora, si prega di sostituirlo con un altro esempio appropriato. – MKJParekh

Problemi correlati