0

我在我的 Android 应用程序上有一个 DAO 方法,数据库对象被转换为 java 对象,如下所示:

public void populateObjectWithCursor(Cursor cursor) {
        if(!cursor.isNull(cursor.getColumnIndex(Const.USER_ID)))
            this.id = cursor.getLong(cursor.getColumnIndex(Const.USER_ID));
}

但是当 isNull 无法访问列时,它会在 logcat 中显示错误:

E/CursorWindow:无法从具有 1 行 2 列的 CursorWindow 读取第 0 行第 -1 列。

我想搭便车,你知道这是否可能吗?没有发现任何异常来处理它...

谢谢

4

1 回答 1

1

错误即将到来,因为getColumnIndex(String name)方法为列索引返回 -1 到getLong(int columnName). 当提供的列名不存在时,该方法返回 -1 作为索引。因此,使用方法检查列名并getColumnName(int columnIndex)使用适当的返回列名而不是Const.USER_IDingetColumnIndex(String columnName)方法。那应该可以解决错误。

于 2013-07-14T11:50:35.457 回答