哪个条款有多个条件不工作

时间:2017-07-04 18:23:46

标签: android database sqlite

在尝试以下代码时,我收到错误:

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)

1 个答案:

答案 0 :(得分:0)

你应该做

if(cursor.moveToFirst()) {
    do {
        Obj obj = createObjectFromCursor(cursor);
    } while(cursor.moveToNext());
}

或者至少您不应该忘记致电moveToPosition()moveToFirst(),以便从默认-1初始化光标的索引。