2012-08-01 30 views
5

Quiero crear un único cursor que contenga tanto el nombre de pila como el apellido y el número de teléfono. Estas columnas no se encuentran juntas en ninguno de los contenedores disponibles en ContactsContract y la única forma en que pude obtener esta información es primero obteniendo un cursor para los nombres y luego obteniendo los números de teléfono creando un cursor separado para cada contacto. Esta solución me obliga a leer los datos en una estructura de datos local en lugar de simplemente usar un adaptador en el cursor e impone una gran sobrecarga de rendimiento (alrededor de ~ 5s con ~ 140 contactos con números de teléfono).Obtención de un cursor ÚNICO con detalles de nombre completo y números de teléfono

¿Hay alguna manera de crear dos cursores y luego unir las tablas? o hay otra manera? He estado luchando con esta pregunta durante los últimos dos días y he leído todo lo que encontré en google, pero realmente no puedo hacer que funcione nada como yo quiero. Esto no puede ser realmente imposible, ¿o no?

¡Gracias de antemano!

Respuesta

0

Puede obtener DISPLAY_NAME y NUMBER en ContactsContract.CommonDataKinds.Phone. Pruebe esto:

Uri uri = Phone.CONTENT_URI; 
String[] projection = new String[] 
       {Phone.DISPLAY_NAME, Phone.NUMBER, Phone.CONTACT_ID, Phone._ID} 
Cursor contactsCursor = getContentResolver().query(uri, projection, null, null, null); 
Cuestiones relacionadas