SQLとアダプターを組み合わせたアプリに取り組んでいます。主な問題は、データベースを更新すると、アダプターが更新を直接反映しないことです。コードは次のとおりです。
public class RSSItemActivity extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rssitem);
long channelid = getIntent().getExtras().getLong(RSSReaderApp.CHANNEL_KEY);
DBAdaptor dbAdaptor = ((RSSReaderApp)getApplication()).getDBAdaptor();
Cursor cursor = dbAdaptor.getRssItems(channelid);
adapter = new RSSItemAdapter(this, R.layout.rssitemview, cursor);
setListAdapter(adapter);
}
ご覧のとおり、このコードは行のSQLからデータを取得しますCursor cursor = dbAdaptor.getRssItems(channelid);
(get RssItemsは、SQLから画面に表示するデータをロードしているだけです)。ただし、同じアクティビティにいくつかのボトムスがあり、それを押すとSQLの値が変更され、取得するデータに影響を与えるはずです。(たとえば、これらのアイテムの色を決定する列があります。元々は白に設定されていて、それを押すと青になります。)ただし、これを押すと、SQLのデータは変更されているように見えますが、実際のプレゼンテーションはまだ同じ色です。使ってみましたadapter.swapCursor(dbAdapter.getRssItems(id));
下部にあるボタンを押すたびにカーソルを更新しますが、元の表示が消えます(おそらく、元のアダプターがカーソルを失ったため、何も表示できません)。正しい出力を得るには、そのページをリロードする必要があります。出力を即座に更新する方法はありますか?よろしくお願いします=)