Android:在访问游标之前,请确保游标已正确初始化

and*_*Tag -2 android android-sqlite

我遇到错误从SQLite数据库表中检索某些数据的同时,请确保在访问游标之前正确初始化了游标

这是我的查询

dbhelper = new MyDbHelper(getContext());
                    SQLiteDatabase db = dbhelper.getReadableDatabase();
                    Cursor cursor1 = db.rawQuery("select MAX(activityObjId) from ActivityObjectList where activityId " + "= ? ", new String[]{string_ActivityId});

                    if (cursor1.moveToFirst())
                    {
                        maxACtivityObjId  = cursor1.getString(cursor1.getColumnIndex("activityObjId"));
                        Log.e("MAX  ", "maxACtivityObjId = " + maxACtivityObjId);
                    }
                    cursor1.close();
                    db.close();
Run Code Online (Sandbox Code Playgroud)

laa*_*lto 5

您的查询包含列

MAX(activityObjId)
Run Code Online (Sandbox Code Playgroud)

但是您尝试使用其他名称检索列:

cursor1.getColumnIndex("activityObjId")
Run Code Online (Sandbox Code Playgroud)

因此,getColumnIndex()返回-1并尝试检索此类索引的值会导致异常。

解决方案:检索您脑中计算出的索引:

cursor1.getString(0)
Run Code Online (Sandbox Code Playgroud)