recuperar contactos en android 2.2

Hola, necesito obtener los detalles de contacto en el texto de edición cuando presiono un botón. Pero lo estoy haciendo bien cuando solo tengo un contacto y muestra una excepción si tiene más de un contacto. Aquí está mi código y no sé qué ¿Debería agregarlo? Así que ayuda si alguien sabe. Gracias en Adv.

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 

            while (cursor.moveToNext()) {
                String contactId = cursor.getString(cursor.getColumnIndex( 
                       ContactsContract.Contacts._ID)); 



                  Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId , null, null); 
                  startManagingCursor(phones); 
                  while (phones.moveToNext()) { 
                      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                  e2.setText(phoneNumber);
                  } 

               //}

            Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); 
            startManagingCursor(emails); 
            while (emails.moveToNext()) { 
               // This would allow you get several email addresses 
               String emailAddress = emails.getString( 
               emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
               e3.setText(emailAddress);
            } 

            Cursor street = getContentResolver().query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, 
                    null,
                    ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId, null, null); 
            startManagingCursor(street); 
            while (street.moveToNext()) { 
                String streetname=street.getString(street.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
                e1.setText(streetname);
            }
            phones.close(); 
            emails.close(); 
            street.close();
            cursor.close(); 

preguntado el 04 de julio de 12 a las 06:07

¿Qué quieres en realidad? explica más.. -

Necesito obtener los detalles de contacto del contacto seleccionado en Edittext al presionar un botón:

si tiene varios contactos, coloque todos en una matriz y muestre esa matriz en Editar texto. -

2 Respuestas

puedes visitar Información de contacto donde se consultan todos los contactos e información

Respondido 04 Jul 12, 06:07

Cambia tu condición while en while(!cursor.isAfterLast()).

Respondido 14 Jul 12, 04:07

Estoy recibiendo CursorIndexOutOfBoundsException - JavaGuy

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.