修改android中的Cursor列值

时间:2012-05-02 13:34:12

标签: android cursor

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

2 个答案:

答案 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获取的值复制到其他变量中。