Listar Contactos en Listview ?

1,413 views
Skip to first unread message

Yesid Lazaro

unread,
Nov 10, 2011, 9:03:33 AM11/10/11
to desarrollad...@googlegroups.com
si alguien sabe de un ejemplo de como mostrar en un listview los contactos del telefono ,en android 2.1 o superior ?

Juan de Dios Maldonado Sánchez

unread,
Nov 10, 2011, 9:59:50 AM11/10/11
to desarrollad...@googlegroups.com
Utiliza el PICK mediante Intents si lo que quieres es hacer que el usuario seleccione un contacto. Hay que aprovechar lo que ya está programado en Android.

2011/11/10 Yesid Lazaro <lazaro...@gmail.com>
si alguien sabe de un ejemplo de como mostrar en un listview los contactos del telefono ,en android 2.1 o superior ?

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.



--
An'Brain - Prueba el nuevo widget inteligente para tu Android.
Idiotizer Free - Idiotiza a tus amigos. (Se requieren auriculares)
Track My App - Realiza un seguimiento de tus aplicaciones en el Android market.

Manuel Hernandez Lemus

unread,
Nov 10, 2011, 11:28:17 AM11/10/11
to desarrollad...@googlegroups.com
Button contacts = (Button) findViewById(R.id.btn_en_tu_xml);
contacts.setOnClickListener(new OnClickListener())
{
   public void onClick(View view)
{}

Javier Hernández

unread,
Nov 10, 2011, 11:30:14 AM11/10/11
to desarrolladores-android
Hola,

Desconozco la opción que comenta Juan de Dios, voy a mirarlo.

Yo lo hago con content providers y queda muy bien, si necesitas ayuda
comenta por aquí.

http://developer.android.com/guide/topics/providers/content-providers.html

Saludos

On 10 nov, 14:59, Juan de Dios Maldonado Sánchez <jua...@gmail.com>
wrote:
> Utiliza el PICK mediante Intents si lo que quieres es hacer que el usuario
> seleccione un contacto. Hay que aprovechar lo que ya está programado en
> Android.
>
> 2011/11/10 Yesid Lazaro <lazaro.ye...@gmail.com>
>
> > si alguien sabe de un ejemplo de como mostrar en un listview los contactos
> > del telefono ,en android 2.1 o superior ?
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo
> > "desarrolladores-android" de Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > desarrollad...@googlegroups.com.
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > desarrolladores-a...@googlegroups.com
> > Para tener acceso a más opciones, visita el grupo en
> >http://groups.google.com/group/desarrolladores-android?hl=es.
>
> --
> An'Brain<https://market.android.com/details?id=com.nidrico.apps.anbrain.lite> -
> Prueba el nuevo widget inteligente para tu Android.
> Idiotizer Free<https://market.android.com/details?id=com.nidrico.apps.idiotizerfree>-
> Idiotiza a tus amigos. (Se requieren auriculares)
> Track My App<https://market.android.com/details?id=com.nidrico.apps.trackmyapp>-

Manuel Hernandez Lemus

unread,
Nov 10, 2011, 11:33:02 AM11/10/11
to desarrollad...@googlegroups.com

Perdon paso algo raro y se envio antes de redactar por completo el msj. Lo que hace es que manda llamar los contactos de tu telefono desde un boton y te lo muestra en un nuevo activity en forma de lista. Espero y te sirva.

Button contacts = (Button) findViewById(R.id.btn_chooseContact); 

​​​​​​​​contacts.setOnClickListener(new OnClickListener() ​​​​​​​​{ ​​​​​​​​​​​​

public void onClick(View view)

{ ​​​​​​​​​​​​​​​​Intent i = new ​​​​​​​​​​​​​​​​Intent(android.content.Intent.ACTION_PICK); 

​​​​​​​​​​​​​​​​i.setType(ContactsContract.Contacts.CONTENT_TYPE); ​​​​​​​​​​​​​​​​

startActivity(i); 

​​​​​​​​​​​​}

 ​​​​​​​​});

Javier Hernández

unread,
Nov 10, 2011, 11:42:09 AM11/10/11
to desarrolladores-android
Te dejo el código que utilizo yo para recuperar los contactos y sus
emails, depende de lo que necesites recuperar pero te puede dar una
idea:

private ArrayList<String> consultaAgenda(){

ArrayList<String> datos = new ArrayList<String>();


Cursor c =
getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
while(c.moveToNext()){
String ContactID =
c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
nombre =
c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
System.out.println("Nombre: "+nombre+" _ID: "+ContactID);
String hasPhone =c.getString(

c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(Integer.parseInt(hasPhone) == 1){
Cursor phoneCursor =
getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+"='"+ContactID+"'",
null, null);
while(phoneCursor.moveToNext()){
String number =
phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String numberType =
phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
switch(Integer.parseInt(numberType)){
// inserta switch cases para manejar todos los tipos de
números de teléfono. Son 20 tipos.
default:System.out.println("Número de teléfono: "+number
+"("+numberType+")");
break;
}

}
phoneCursor.close();
}else{
System.out.println("No se encontraron números de teléfono");
}

Cursor emailCursor =
getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[]
{ ContactsContract.CommonDataKinds.Email.DATA,
ContactsContract.CommonDataKinds.Email.TYPE},
ContactsContract.CommonDataKinds.Email.CONTACT_ID
+"='"+ContactID+"'", null, null);
while(emailCursor.moveToNext()){
String email =
emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType =
emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
switch(Integer.parseInt(emailType)){
case 1: datos.add(nombre + " Home: " + email); break;
case 2: datos.add(nombre + " Work: " + email); break;
case 3: datos.add(nombre + " Other: " + email); break;
case 4: datos.add(nombre + " Mobile: " + email); break;
case 5: datos.add(nombre + " Custom: " + email); break;
}
}
emailCursor.close();
}
c.close();


return datos;
} // Find de consultaAgenda()

Javier Hernández

unread,
Nov 10, 2011, 11:49:18 AM11/10/11
to desarrolladores-android
Claro y quieres que se muestren en el ListView, por lo que necesitas
algo así en el onCreate:

lista = (ListView) findViewById(R.id.listViewContactos);

ArrayList<String> listagente = consultaAgenda();

ArrayAdapter<String> adapter = new
ArrayAdapter<String>(ContactosActivity.this, R.layout.fila_contactos,
listagente);
lista.setAdapter(adapter);

lista.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {

}
Reply all
Reply to author
Forward
0 new messages