4

SQLiteDataBase オブジェクトから返された Cursor があります。getXXX() を使用して、カーソルから列の内容を取得できます。私の場合、メソッドを使用してカーソル内のデータを「更新」したいのですが、メソッドsetXXX()がないことはわかっています。setXXX()しかし、この機能を持つCursorWindowオブジェクトがありますが、私はそれを使用できません

4

2 に答える 2

5

カーソルを変更することはできません。

できることは、データベースを更新してからreQuery()メソッドを使用することです。

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

編集

さらなる調査により、明らかに私が間違っていることが示されています。あなたはやりたいことをすることができますが、それはかなりの作業です(いいえ、試していません。カーソルを再クエリするだけです)。

フォーラムでこれを見つけました(Google検索を使用):

SQLiteDatabase.CursorFactory をサブクラス化して、その newCursor メソッドから SQLiteCursor のサブクラスを返すことができます。このファクトリは SQLiteOpenHelper コンストラクターに渡されるため、クエリを実行すると、新しい SQLiteCursor サブクラス タイプの Cursors が返されます。その後、SQLiteCursor サブクラスは、CursorWindow である保護された mWindow フィールドを管理するメソッドを公開できます。このオブジェクトには、データを操作する putXxx メソッドがあります。

于 2012-05-02T13:49:56.580 に答える
1

によって返される値は変更できませんCursor。データベースを更新する必要があるため、返されたカーソルが指す値を変更するか、getXXX を使用して取得した値を他の変数にコピーします。

于 2012-05-02T13:44:35.983 に答える