我试图从RANDOM()排序的SQLite获取原始查询结果的rowid。我已经阅读了许多帖子,并尝试应用解决方案以了解有效性。我不断收到错误消息:
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
我读到-1表示该列不存在,但确实存在。
错误在下面的代码中突出显示了这一行:
mRow = mCursor.getInt(mCursor.getColumnIndexOrThrow("_id"));
这是我正在尝试使用的代码方法:
public static void PopulateTodaysQuote(Context context) {
String rawQuery = "SELECT _id, book_main, page_number, author_name, quote FROM todaysquotedb ORDER BY RANDOM() LIMIT 1";
mCursor = mSQLiteDatabase.rawQuery(rawQuery, null);
mRow = mCursor.getInt(mCursor.getColumnIndexOrThrow("_id"));
TodaysQuoteCursorAdapter todaysQuoteCursorAdapter = new TodaysQuoteCursorAdapter(context, mCursor);
mTodaysQuoteListView.setAdapter(todaysQuoteCursorAdapter);
}
mRow是一个整数,我希望等于选择的rowid,因此我可以将其与共享的首选项一起保存并在以后加载。任何帮助表示赞赏。