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