我正在研究一种使用游标查询内容提供者的方法。在我删除一条记录后,它会调用该loadfromProvider
方法并刷新arraylist。内容提供者通常在其中包含记录,但是,当我删除所有记录并且查询自动运行时,它会引发异常。这是我的方法:
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 无效,java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) 处的大小为 1
我认为这是由于光标试图解析空值。我试图找出一种方法,如果游标没有返回任何记录,它会绕过其余代码并且什么也不会发生。
任何帮助,将不胜感激。谢谢