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