【问题标题】:Problems with showing data from Cursor in Android在 Android 中显示光标数据的问题
【发布时间】:2011-06-28 13:47:14
【问题描述】:

运行我的应用程序时,我的 LogCat 中出现以下错误:

06-28 13:39:57.827: 错误/AndroidRuntime(10490): java.lang.RuntimeException:无法 开始活动 组件信息{random.test/random.test.ResultsActivity}: android.database.CursorIndexOutOfBoundsException: 请求索引 -1,大小为 2

触发错误的代码:

myCursor.getString(0)

我检查了我的 SQL 查询,当我在 SQLite 数据库浏览器中运行它时它工作正常(我已经从我的模拟器中提取了数据库,没有任何改动)。它返回 1 列,2 行:

--------
| test |
--------
| asd1 |
--------
| asd2 |
--------

当我在光标上运行 getColumnIndex("test") 时,它返回“0”。所以我在这里完全没有想法,它说现有的列不存在?

【问题讨论】:

    标签: android sql sqlite cursor


    【解决方案1】:

    您可能需要在尝试使用它之前致电moveToFirst() on the Cursor。此外,getColumnIndex(String) 返回一个基于 0 的索引,所以如果它返回 0,那么它是一个有效的列。 -1 表示该列不存在。

    【讨论】:

      【解决方案2】:

      您应该在尝试访问数据之前执行 myCursor.moveToFirst()。

      【讨论】:

        【解决方案3】:

        getColumnIndex("test") 只是让您知道列的索引。它没有说明行数...您可以从具有“n”列的表中获得 0 行。

        所以结果为 0 的 getColumnIndex("test") 只是表示您在位置 0 处有一列。

        关于 myCursor.getString(0),错误是因为你没有任何结果。 您是否将光标移动到第一个元素?不要忘记调用 moveToFirst()...

        希望对你有帮助……

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-02
          • 1970-01-01
          • 2011-07-05
          相关资源
          最近更新 更多