尝试运行

时间:2015-08-10 08:19:01

标签: android database

我试图从我的数据库中获取数据,因此它会更改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);

我不知道为什么我会收到此错误,我希望有人可以指出我的错误。

2 个答案:

答案 0 :(得分:2)

您需要检查光标是否为空。我总是这样做:

    if (cursor.moveToFirst()) {

        do {

        // your code. Adding to ArrayList etc.

        } while (cursor.moveToNext());

    }

答案 1 :(得分:1)

您需要将光标移动到第一条记录上:

a.moveToFirst();

填写后不久(运行rawQuery()后) 否则,它会在第一条记录之前定位

这意味着,在 -1 位置,而不是 0 位置。