我正在创建一个存储日记条目的应用程序。检索日记条目后,我得到一个 CursorIndexOutOfBoundsException
,我相信这与我的 SELECT
语句有关,以获取数据库中的信息。
getDAO = new DAO(this);
Cursor showDiaryEntries = getDAO.queryDiary(Diary.DiaryItem.FULL_PROJECTION, Diary.DiaryItem.COLUMN_NAME_DIARY_TITLE+" = "+fieldTitle, null);
Long fieldDate = showDiaryEntries.getLong(1);
Long fieldTime = showDiaryEntries.getLong(2);
String fieldEntry = showDiaryEntries.getString(3);
mDate.setText(String.valueOf(fieldDate));
Log.i(TAG,"Field Date "+ fieldDate);
mTime.setText(String.valueOf(fieldTime));
Log.i(TAG,"Field Time "+ fieldTime);
mEntry.setText(fieldEntry);
Log.i(TAG,"Field Entry "+ fieldEntry);
我一直在阅读有关此类异常的信息,并且认为这可能与我在没有循环的情况下获取 String/Long 时有关?虽然我不完全理解这一点。
日志猫
03-07 07:10:59.475: E/AndroidRuntime(1471): FATAL EXCEPTION: main
03-07 07:10:59.475: E/AndroidRuntime(1471): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.democo.mydiary/com.democo.mydiary.DiaryEntryActivity}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
我希望有人能够告诉我问题出在哪里。 谢谢
最佳答案
确保你打电话:
showDiaryEntries.moveToFirst();
在开始对光标进行任何操作之前执行此操作。这将确保游标从数据库的第一行开始!
关于java - 大小为 1 的 CursorIndexOutOfBoundsException : Index -1 requested,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22250224/