我试图从我的数据库中获取数据,因此它会更改EditText值,但我不确定为什么我会收到CursorIndexOutOfBounds异常。
我的数据库代码如下
public String getActivityData(Integer name){
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "SELECT * FROM VenueTable WHERE _id = " + name+";";
Cursor a = db.rawQuery(sql, null);
String facility = a.getString(a.getColumnIndex("facilities"));
return facility;
}
以下是我使用的代码使用提供的数据
facility1 = listViewd.getActivityData(post);
facility = (TextView) findViewById(R.id.facilityName);
facility.setText(facility1);
我不知道为什么我会收到此错误,我希望有人可以指出我的错误。
答案 0 :(得分:2)
您需要检查光标是否为空。我总是这样做:
if (cursor.moveToFirst()) {
do {
// your code. Adding to ArrayList etc.
} while (cursor.moveToNext());
}
答案 1 :(得分:1)
您需要将光标移动到第一条记录上:
a.moveToFirst();
填写后不久(运行rawQuery()
后)
否则,它会在第一条记录之前定位。
这意味着,在 -1 位置,而不是 0 位置。