运行我的应用程序时,我在LogCat中收到以下错误:
06-28 13:39:57.827: ERROR / AndroidRuntime(10490): java.lang.RuntimeException:无法 开始活动 ComponentInfo {random.test / random.test.ResultsActivity}: android.database.CursorIndexOutOfBoundsException: 要求索引-1,大小为2
触发错误的代码:
myCursor.getString(0)
我已经检查了我的SQL查询,当我在SQLite数据库浏览器中运行它时它工作正常(我从我的模拟器中取出数据库,没有任何改动)。它返回1列,包含2行:
--------
| test |
--------
| asd1 |
--------
| asd2 |
--------
当我在游标上运行getColumnIndex(“test”)时,它返回'0'。所以我在这里完全没有想法,它说现有的专栏不存在?
答案 0 :(得分:3)
在尝试使用之前,您可能需要致电moveToFirst() on the Cursor。此外,getColumnIndex(String)返回基于0的索引,因此如果它返回0,则它是有效列。 -1表示该列不存在。
答案 1 :(得分:2)
在尝试访问数据之前,您应该执行myCursor.moveToFirst()。
答案 2 :(得分:1)
getColumnIndex(“test”)只是让你知道列的索引。它没有说明行数...你可以从'n'列的表中得到0行。
因此,结果为0的getColumnIndex(“test”)表示您在位置0中有一列。
关于myCursor.getString(0),错误是因为您没有任何结果。 你把光标移动到第一个元素了吗?别忘了调用moveToFirst()...
希望这可以帮助你...