我正在开发一个结合了 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);
(获取 RssItems 只是从 SQL 加载我们想要在屏幕上呈现的数据)。但是,我在同一个活动中有一些底部,如果我按下它,它将更改 SQL 中的值,这应该会影响它检索的数据。(比如有一个栏目决定这些项目的颜色是什么,原来是白色的,按了之后应该是蓝色了真实呈现还是一样的颜色。我曾尝试使用adapter.swapCursor(dbAdapter.getRssItems(id));
在底部每次按下按钮时更新光标,但它会让我原来的显示消失(可能是因为原来的适配器丢失了它的光标,所以它什么都不能显示),我必须重新加载该页面才能获得正确的输出。有没有办法可以立即更新输出?感谢您提前回复=)