在尝试以下代码时,我收到错误:
Cursor cursor1 = db.rawQuery("SELECT * FROM " + TABLE_TRAVEL +
" WHERE " + KEY_CITY + " = ? AND " + KEY_STATE + " = ?",null);
E / AndroidRuntime:致命异常:主要 处理:com.anvipuri.databaseplaces,PID:11773 java.lang.RuntimeException:无法启动活动 ComponentInfo {com.anvipuri.databaseplaces / com.anvipuri.databaseplaces.MainActivity}: android.database.CursorIndexOutOfBoundsException:索引-1请求, 大小为6 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 在android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 在android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 引起:android.database.CursorIndexOutOfBoundsException:索引-1 请求,大小为6 在 android.database.AbstractCursor.checkPosition(AbstractCursor.java:460) 在 android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 在 android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) 在 com.anvipuri.databaseplaces.DatabaseHelper.findOnep(DatabaseHelper.java:132) 在 com.anvipuri.databaseplaces.MainActivity.onCreate(MainActivity.java:119) 在android.app.Activity.performCreate(Activity.java:6679) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 在android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 在android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
答案 0 :(得分:0)
你应该做
if(cursor.moveToFirst()) {
do {
Obj obj = createObjectFromCursor(cursor);
} while(cursor.moveToNext());
}
或者至少您不应该忘记致电moveToPosition()
或moveToFirst()
,以便从默认-1
初始化光标的索引。