在android中修改光标列值

在android中修改光标列值,android,cursor,Android,Cursor,我有一个从SQLiteDataBase对象返回的游标,我可以使用getXXX()从游标获取列的内容,在我的情况下,我想使用setXXX()方法修改游标中的“更新”数据,我知道没有setXXX()方法,但有CursorWindow对象具有此功能,但是我不能使用它您不能更改游标返回的值。您需要更新数据库,从而更改返回的游标所指向的值,或者将使用getXXX获得的值复制到其他变量中。您不能更改游标 您可以做的是更新数据库,然后使用reQuery()方法 // code to update your d

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

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

您不能更改游标

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

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

进一步的研究表明我显然是错的。你可以做你想做的,但这是一个相当大的工作(不,我没有尝试过,我只是重新查询我的光标)

我在一个论坛上(使用谷歌搜索)发现了以下内容:

您可以从其子类SQLiteDatabase.CursorFactory返回 newCursor方法,SQLiteCursor的子类。这家工厂通过了考试 因此,当您查询它时,它将 返回新SQLiteCursor子类类型的游标。这个 然后,SQLiteCursor子类可以公开管理其 受保护的mWindows字段,它是一个游标窗口。这个物体有 putXxx方法来操作数据


你能说得更准确些吗?你想做什么?你试过什么?ect…看看我的更新,它看起来好吗?你不能像这样更新光标。如果要更新数据库,需要从SQLiteDatabase:,android.content.ContentValues,java.lang.String,java.lang.String[])调用update方法光标保存5000条记录,所以我更新数据库并重新查询?如果5000条记录有相同的更新,您可以在一次请求中进行此更新并再次查询。为了更快,您可以从光标实例化对象,并手动设置需要更新的特定参数和更新数据库。这样做时,您使用光标而不进行其他查询。有了更新,下次调用方法时,就不必再次更新数据库了……光标保存着5000条记录,所以我更新数据库并重新查询?这是好的,如果你想你的变化是永久性的,你需要更新数据库。如果不需要,您可以将从数据库中获取的数据复制到数组中并对其进行更改。我要做的是修改光标,这样我就不需要重新查询,同时我对数据库进行更新语句以保持更改,因此,现在您有了完整的概览进行更新并调用重新查询。查询本身不应该太长(除非您的查询非常复杂),因为游标仅在需要时提取实际数据。putXXX方法是否提交到数据库?根据编号。它只将数据放入游标。您必须将其单独插入数据库中。OP在进一步的评论中说这是他的目标,所以这应该对他有用。