我有一个Cursor返回从SQLiteDataBase对象,我可以使用getXXX()从光标获取列的内容,在我的情况下,我想使用setXXX()
方法修改游标中的“更新”数据,我知道没有setXXX()
方法,但有CursorWindow对象具有此功能,但我无法使用它
答案 0 :(得分:5)
您无法更改光标。
您可以做的是更新数据库,然后使用reQuery()
方法。
// code to update your db
cursor.requery();
修改强>
进一步的研究表明,显然我不正确。你可以做你想做的事,但这是相当多的工作(不,我没有尝试过,我只是重新查询我的光标)。
我在论坛上发现了这一点(使用Google搜索):
您可以将SQLiteDatabase.CursorFactory子类化为从其返回 newCursor方法,SQLiteCursor的子类。这家工厂通过了 到SQLiteOpenHelper构造函数,所以,当你查询它时,它会 返回新SQLiteCursor子类类型的游标。该 然后,SQLiteCursor子类可以公开管理它的方法 protected mWindow field,它是一个CursorWindow。这个对象有 putXxx方法来操纵数据。
答案 1 :(得分:1)
您无法更改Cursor
返回的值。您需要更新数据库,因此更改返回光标指向的值或将使用getXXX获取的值复制到其他变量中。