Я работаю над методом, который запрашивает поставщика контента с помощью курсора. После удаления записи он вызывает метод loadfromProvider
и обновляет список массивов. Однако у поставщика контента обычно есть записи, когда я удаляю все записи и запрос запускается автоматически, он генерирует исключения. Вот мой метод:
private void loadFromProvider() {
// Clear the existing array list
EQlist.clear();
ContentResolver cr = getContentResolver();
// Return all the saved records
Cursor c = cr.query(EQProvider.CONTENT_URI, null, null, null, null);
if (c.moveToFirst()) {
do {
String details = c.getString(EQProvider.DETAILS_COLUMN);
String linkString = c.getString(EQProvider.LINK_COLUMN);
EQli q = new EQli(details, linkString);
addEQToArray(q);
} while(c.moveToNext());
}
c.close();
}
Когда я запускаю это без записей в поставщике контента, он выдает следующее:
java.lang.IndexOutOfBoundsException: неверный индекс 1, размер равен 1 в java.util.ArrayList.throwIndexOutOfBoundsException (ArrayList.java:257)
Я думаю, это связано с тем, что курсор пытается проанализировать нулевое значение. Я пытаюсь найти способ, которым, если курсор не возвращается ни с какими записями, он обходит остальную часть кода и ничего не происходит.
Любая помощь будет оценена по достоинству. Спасибо