我正在尝试使用以下代码从我的数据库中获取一个特定条目:
Object specificObject = myDbHelper.getObject(int id, int level);
// code in DataBaseHelper:
public Object getObject(int id, int level){
c = myDataBase.rawQuery("SELECT * FROM QUESTIONS WHERE ID =" + id + " AND LEVEL = " + level, null);
Object q = new Object();
q.setQuestion(c.getString(1));
q.setName(c.getString(2));
q.setFile(c.getInt(3));
q.setAnswer(c.getString(4));
return q;
}
问题是导致以下错误:
09-24 11:12:52.299:E / AndroidRuntime(7388):引起:android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1
有什么想法吗?它似乎知道它的大小为一(一个条目?)但我没有得到索引-1请求的问题......
答案 0 :(得分:3)
在从光标访问数据之前,您必须先移动第一条记录。
c.moveToFirst()
答案 1 :(得分:1)
你应该这样做:
c = myDataBase.rawQuery("SELECT * FROM QUESTIONS WHERE ID =" + id + " AND LEVEL = " + level, null);
if(c.moveToFirst()) {
Object q = new Object();
q.setQuestion(c.getString(1));
q.setName(c.getString(2));
q.setFile(c.getInt(3));
q.setAnswer(c.getString(4));
return q;
}
return null;