studio read all android cursor contacts

read - android.database.CursorIndexOutOfBoundsException: se solicitó el índice-1, con un tamaño de 2



get contacts android studio (1)

Si está accediendo a datos desde el objeto Cursor , debe tener la posición del objeto Cursor .

En realidad, debe colocar el Cursor en la primera fila antes de intentar acceder a los datos desde él.

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 codigo

Y también asegúrese de que no esté utilizando una API más antigua para recuperar contactos.

A continuación se encuentran mis códigos y obtuve la android.database.CursorIndexOutOfBoundsException : se solicitó el índice -1, con un error de tamaño 2. ¿Alguien puede decirme cómo resolverlo?

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++; } } } }