2011-01-31 9 views
18

A continuación están mis códigos y obtuve el android.database.CursorIndexOutOfBoundsException: Índice -1 solicitado, con un tamaño de 2 error. ¿Alguien puede decirme cómo resolverlo?android.database.CursorIndexOutOfBoundsException: Índice -1 solicitado, con un tamaño de 2

ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
    null, null, null, null); 
    if (Integer.parseInt(cur.getString(
    cur.getColumnIndex(People.PRIMARY_PHONE_ID))) > 0) { 

    Cursor pCur = cr.query(
    Contacts.Phones.CONTENT_URI, 
    null, 
    Contacts.Phones.PERSON_ID +" = ?", 
    new String[]{id}, null); 
    int i=0; 
    int pCount = pCur.getCount(); 
    String[] phoneNum = new String[pCount]; 
    String[] phoneType = new String[pCount]; 
    while (pCur.moveToNext()) { 
    phoneNum[i] = pCur.getString(
     pCur.getColumnIndex(Contacts.Phones.NUMBER)); 
    phoneType[i] = pCur.getString(
     pCur.getColumnIndex(Contacts.Phones.TYPE)); 
    i++; 
    } 
    } 
} 
} 
+0

¿Qué es 'phoneType'. Además, debe editar su pregunta y formatear su código correctamente. – Falmarri

+0

puede ser que este error viene porque no ha agregado ningún contacto en su emulador .......... –

+0

¿ha agregado los permisos apropiados a AndroidManifest? – Sriram

Respuesta

61

Si accede a los datos de Cursor objeto que el que debe tener para posicionar el objeto Cursor.

En realidad, tiene que posicionar Cursor en la primera fila antes de intentar acceder a los datos desde esta.

Ponga la línea cur.moveToFirst(); después de la línea Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); en su código.

Y también asegúrese de que no está utilizando una API anterior para recuperar Contactos.

+0

tks. Tengo otro error nw. Causado por: java.lang.IllegalStateException: get field slot from row 0 col -1 failed – user596379

+1

Probablemente significa que está utilizando un nombre de columna no válido. Y si solo quiere leer contactos (números de teléfono móvil), eche un vistazo a esta pregunta http://stackoverflow.com/questions/1721279/how-to-read-contacts-on-android-2-0 –

+0

ok. tks. Voy a probar el enlace. si obtengo más qns, lo publicaré de nuevo. – user596379

Cuestiones relacionadas