android database.CursorIndexOutOfBoundsException
在我的应用程序中,我遇到了这个错误,我正在尝试解决它。但我不能这样做android database.CursorIndexOutOfBoundsException,android,android-sqlite,Android,Android Sqlite,在我的应用程序中,我遇到了这个错误,我正在尝试解决它。但我不能这样做 Cursor c = G.db.getReceivedFromDatabaseByCount ( username, received_count ); if (c != null && c.moveToLast () && c.getCount () != 0) { for (int i = cursor_count; i > 0; i--) { ..
Cursor c = G.db.getReceivedFromDatabaseByCount ( username, received_count );
if (c != null && c.moveToLast () && c.getCount () != 0) {
for (int i = cursor_count; i > 0; i--) {
...
c.moveToPrevious ();
}
}
c.close ();
在谷歌和本网站进行任何搜索并将c.moveToLast()
添加到if
后,必须解决此问题
完整LogCat结果:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample/com.sample.Service.ServiceDialog}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4
...
Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at com.sample.Service.ServiceDialog.updateAndIntertDialog(ServiceDialog.java:216)
at com.sample.Service.ServiceDialog.onCreate(ServiceDialog.java:125)
at android.app.Activity.performCreate(Activity.java:5122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
... 11 more
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at com.sample.Service.ServiceDialog.updateAndIntertDialog(ServiceDialog.java:216)
at com.sample.Service.ServiceDialog.onCreate(ServiceDialog.java:125)
您不应该将
int i=cursor\u count
设置为与游标长度相等的值,这与上一个索引值不同
应该是这样的:
for (int i = (cursor_count - 1); i >= 0; i--)
在我看来,好像你根本不想在那里出现
for
循环。您只需移动到最后一个,然后继续使用记录并调用c.moveToPrevious()
,直到记录用完。现在不解决问题我收到以下错误:android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为50