java - 大小为 1 的 CursorIndexOutOfBoundsException : Index -1 requested,

标签 java android exception

我正在创建一个存储日记条目的应用程序。检索日记条目后,我得到一个 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/

相关文章:

java - JDesktopPane 和 BorderLayout

java - 将 scala.Function1 写成 lambda 的正确方法是什么?

java - Java 中的锁定——乐观与悲观

Android Studio 错误高亮

mysql - Node MySQL 错误 - 错误 : Cannot enqueue Quit after invoking quit

java - file.getParentFile().mkdirs();在 osx 中创建重复的文件夹

java - Json 结构如此不同,无法将其更改为 Java 对象

android:通过代码在 PopupWindow 上设置边距

android - 在不配对的情况下在android中指定链接 key

c# - 如何在 C# 中处理特定的 SQL 异常(例如,违反唯一约束)?