ListActivity
にはSimpleCursorAdapter
を使用してデータベースコンテンツを表示しています。基になるデータベースが変更されたときにビューを更新するのに問題があります。Android:データベース全体を置換するときのカーソル再クエリー
実験として、アクティビティのonResume()
のCursor.requery()
への呼び出しをデバッグ用に追加しました。したがって、私がしなければならないことは、別のアクティビティに戻ってリフレッシュすることです。私はまた、デバッグのためにonContentChanged()
をオーバーライドしました。 requery()
が呼び出されていますが、これでonContentChanged()
が呼び出されることはありません。
カーソルが古いキャッシュデータを使用していると思われます。変更を促す操作は、実際にはデータベース全体をワイプして置き換えることを伴う。単純に再クエリーするのではなく、カーソルを捨てて最初から再構築する必要があると思います。
Cursor.requery()
と一緒に基になるデータベースを閉じて再オープンしようとしましたが、カーソルがデータベースのように足の下から引っ張られているように見えません。
編集:adapter.notifyDataSetChanged()
とrequery()
とをonResume()
と一緒に呼び出してみましたが、違いはありません。
アドバイスはありますか?
はい、これも無効です。私は質問を更新します。 –