6

CursorAdapter に基づくカスタム アダプターに基づく ListView があります。

私が与えるカーソルは、データベース内のメモのリストに基づいています (各メモは DB 行です)。

データベースからメモを削除するまで、すべてが正常に機能します。カーソル/アダプター/リストビューを適切に更新して新しいデータを表示する方法がわかりません。

adapter.notifyDataSetChanged()vsを使用して UI を更新するという競合する投稿を読んだことがcursor.requery()ありますが、この場合はどちらも機能しないようです。更新できた唯一の方法は、新しいクエリから新しいカーソルを作成してadapter.changeCursor(newCursor).

バッキングデータを更新してからUIを更新する適切な方法を誰かが実証できますか(可能であれば疑似コードを使用して)。

4

3 に答える 3

9

あなたはしなければrequeryなりませんnotifyDataSetChanged

于 2010-08-16T19:28:14.363 に答える
0

これは私にとってうまくいくものですが、それが最善の方法かどうかはわかりません。

c = db.rawQuery( "SELECT * FROM mytable", null); //same line of the first initialization
adapter.swapCursor(c);

唯一のカーソルを更新します。新しいカーソルをどうするかわかりません。また、関数の名前で答える人がわかりません。

于 2014-08-27T14:52:05.450 に答える