4

我有一个从 SQLiteDataBase 对象返回的游标,我可以使用 getXXX() 从游标中获取列的内容,在我的情况下,我想使用setXXX()方法修改游标中的“更新”数据,我知道没有setXXX()方法,但是有具有此功能的 CursorWindow 对象,但我不能使用它

4

2 回答 2

5

您无法更改光标。

您可以做的是更新您的数据库,然后使用该reQuery()方法。

// code to update your db
cursor.requery();

编辑

进一步的研究表明,显然我是不正确的。你可以做你想做的事,但这需要做很多工作(不,我没有尝试过,我只是重新查询我的光标)。

我在论坛上找到了这个(使用谷歌搜索):

您可以继承 SQLiteDatabase.CursorFactory 以从其 newCursor 方法返回 SQLiteCursor 的子类。该工厂被传递给 SQLiteOpenHelper 构造函数,因此,当您查询它时,它将返回您的新 SQLiteCursor 子类类型的游标。然后 SQLiteCursor 子类可以公开管理其受保护的 mWindow 字段的方法,该字段是一个 CursorWindow。这个对象有 putXxx 方法来操作数据。

于 2012-05-02T13:49:56.580 回答
1

您不能更改返回的值Cursor。您要么需要更新数据库,从而更改返回游标指向的值,要么将使用 getXXX 获得的值复制到其他变量中。

于 2012-05-02T13:44:35.983 回答