Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite获取CursorIndexOutOfBoundsException_Android_Database_Sqlite_Cursor - Fatal编程技术网

Android SQLite获取CursorIndexOutOfBoundsException

Android SQLite获取CursorIndexOutOfBoundsException,android,database,sqlite,cursor,Android,Database,Sqlite,Cursor,我在使用游标对Android数据库执行SQLite查询时遇到问题,如果我尝试使用getPage,我会得到一个Android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 错误,我是不是对游标做了什么错事?执行cursor.getColumnCount()得到正确的4,并且有一行,所以这不是问题所在,是什么导致了错误?提前谢谢 public class DBHandler extends SQLiteOpenHelper { private

我在使用游标对Android数据库执行SQLite查询时遇到问题,如果我尝试使用getPage,我会得到一个
Android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0
错误,我是不是对游标做了什么错事?执行cursor.getColumnCount()得到正确的4,并且有一行,所以这不是问题所在,是什么导致了错误?提前谢谢

public class DBHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 3;

// Database Name
private static final String DATABASE_NAME = "pagesManager";

// Pages table name
private static final String TABLE_PAGES = "pages";
// Pages Table Columns names
private static final String PAGES_KEY_ID = "id";
private static final String PAGES_KEY_NAME = "pageName";
private static final String PAGES_KEY_DATE = "lastDate";
private static final String PAGES_KEY_PAGE = "pageUrl";
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_PAGES_TABLE = "CREATE TABLE " + TABLE_PAGES + "("
            + PAGES_KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + PAGES_KEY_NAME + " TEXT,"+ PAGES_KEY_DATE + 
            " TEXT," + PAGES_KEY_PAGE + " TEXT" +")";
    db.execSQL(CREATE_PAGES_TABLE);
}

   public PageListItem getPage(int id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABLE_PAGES, new String[] { PAGES_KEY_ID, PAGES_KEY_NAME, PAGES_KEY_DATE, PAGES_KEY_PAGE }, PAGES_KEY_ID + "=?",
            new String[] { String.valueOf(id) }, null, null, null, null);
    if (cursor != null)
        if(cursor.moveToFirst()) {
            System.out.println("Cursor no es nulo");
        }
    PageListItem page = new PageListItem(cursor.getString(1),cursor.getString(2), cursor.getString(3),Integer.parseInt(cursor.getString(0)));
    cursor.close();
    return page;
}
}

我使用了一个错误的id,所以getPage()找不到它。

我使用了一个错误的id,所以getPage()找不到它。

你应该接受这个答案才能结束这个问题:)我不能,它说我需要等2天,谢谢你的提醒。无论如何,你应该接受这个答案才能结束这个问题:)我不能,上面说我需要等两天,谢谢你的提醒