android.database.CursorIndexOutOfBoundsException:请求索引133,大小为133

时间:2014-05-16 21:12:23

标签: android android-cursoradapter

E/AndroidRuntime(10638): android.database.CursorIndexOutOfBoundsException: Index 133 requested, with a size of 133
E/AndroidRuntime(10638): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
E/AndroidRuntime(10638): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
E/AndroidRuntime(10638): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:74)
E/AndroidRuntime(10638): at android.database.CursorWrapper.getLong(CursorWrapper.java:106)
E/AndroidRuntime(10638): at android.database.CursorWrapper.getLong(CursorWrapper.java:106)
E/AndroidRuntime(10638): at com.android.email.activity.MessagesAdapter.isNoResultView(MessagesAdapter.java:375)
E/AndroidRuntime(10638): at com.android.email.activity.MessagesAdapter.getItemViewType(MessagesAdapter.java:443)
E/AndroidRuntime(10638): at android.widget.HeaderViewListAdapter.getItemViewType(HeaderViewListAdapter.java:234)

奇怪的是,在getItemViewType中,我们使用moveToPosition(int pos)获取光标。这意味着它保证游标不会超出范围。当我们尝试访问游标时,是否可能交换游标?如果是这样,我应该如何阻止光标?

1 个答案:

答案 0 :(得分:0)

很难说没有查看基于logcat的代码,但是当您尝试访问不存在的列时会出现错误...

确认列数和名称是否符合您的预期。

你可能在没有更改版本等的情况下更改了数据库。所以我建议在更安全的一面你可以卸载应用程序更改代码中的数据库名称并安装回来看看它是否重现错误... < / p>

希望它有所帮助.... thx