Récupérer des contacts dans l'application android
J'étais en suivant ces liens pour obtenir les contacts dans mon application
Comment appeler Android liste de contacts?
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/
Je peux afficher la liste des contacts sur le téléphone, mais
-
- Je veux ajouter une case à cocher à chaque point de contact, de sorte que l'utilisateur peut sélectionner
plusieurs contacts et en cliquant sur le bouton terminé, il devrait être en mesure
pour obtenir tous les
les contacts qu'il a choisi - Aussi je veux obtenir le nom de contact ainsi que le téléphone
nombre de contact , voir mon code :
if (resultCode == Activité.RESULT_OK) { Uri contactData = données.getData(); Cursor c = managedQuery(contactData, null, null, null, null); si (c.moveToFirst()) { String name = c.getString(c .getColumnIndexOrThrow(ContactsContract.Les Contacts.DISPLAY_NAME)); Numéro de chaîne = c.getString(c.getColumnIndexOrThrow(ContactsContract.Les Contacts.HAS_PHONE_NUMBER)); Journal.v("nom", nom +" "+nombre); //TODO tout ce que vous voulez faire avec le contact sélectionné //le nom. } }
sur ouvrir une session de chat, il montre de sortie :
01-09 12:46:41.688: V/name(699): Xyz 1
qui est le nom de contact est xyz et il a au moins 1 numéro de téléphone associé.Merci de m'aider sur comment puis-je obtenir le numéro associé à ce contact.
EDIT :
si j'utilise ce(String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));
) de la ligne dans le code de l'-je obtenir de l'exception suivante :
01-09 13:33:23.008: E/AndroidRuntime(786): FATAL EXCEPTION: main
01-09 13:33:23.008: E/AndroidRuntime(786): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.contacts/contacts/lookup/0r1-2C2E30/1 (has extras) }} to activity {sra.com/sra.com.ContactsDemo}: java.lang.IllegalArgumentException: column 'number' does not exist
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread.access$2800(ActivityThread.java:125)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.os.Handler.dispatchMessage(Handler.java:99)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.os.Looper.loop(Looper.java:123)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-09 13:33:23.008: E/AndroidRuntime(786): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 13:33:23.008: E/AndroidRuntime(786): at java.lang.reflect.Method.invoke(Method.java:521)
01-09 13:33:23.008: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-09 13:33:23.008: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-09 13:33:23.008: E/AndroidRuntime(786): at dalvik.system.NativeStart.main(Native Method)
01-09 13:33:23.008: E/AndroidRuntime(786): Caused by: java.lang.IllegalArgumentException: column 'number' does not exist
01-09 13:33:23.008: E/AndroidRuntime(786): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:99)
01-09 13:33:23.008: E/AndroidRuntime(786): at sra.com.ContactsDemo.onActivityResult(ContactsDemo.java:49)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.Activity.dispatchActivityResult(Activity.java:3890)
01-09 13:33:23.008: E/AndroidRuntime(786): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
01-09 13:33:23.008: E/AndroidRuntime(786): ... 11 more
source d'informationauteur Shruti
Vous devez vous connecter pour publier un commentaire.
En voyant les réponses, je pense que vous avez eu la réponse pour récupérer les contacts et maintenant, vous souhaitez obtenir les contacts sélectionnés sur votre activité.
Remarque: Ici
contactName
est le nom du contact que vous voulez fecth les numéros de contact.1. Démarrez votre activité de contact avec
startActivityForResult()
.2. Initialiser
ArrayList
variable en contact avec l'activité de le direcontactArrayList
.3. Lorsque l'utilisateur
checks the checkbox
ajouter ce contact dans votrecontactArrayList
et de maintenir sur l'ajout et quandunchecks
puis supprimer un contact de lacontactArrayList
.4. Quand l'utilisateur appuie sur fait, puis réglez le résultat ok avec le contact sélectionné de la liste qui vous ont ajouté dans
contactArrayList
comme ceci:et
finish()
cette activité.5. Sur votre activité de remplacement:
Remarque: Le code ci-dessus a été testé sur 2.3.3.
S'il vous plaît essayez ce code
Ici vous avez le curseur c
pour obtenir le nom
pour obtenir le nombre
Vous pouvez parcourir le curseur et les enregistrer dans une liste. Créer une liste de case à cocher afficher et de se lier avec cette liste.
Tout simplement, une des données de contact de l'objet, et à chaque fois que vous sélectionnez un élément dans une liste, définissez la valeur de ce contact dans ce domaine.
dans
D'essayer le code ci-dessous: