【发布时间】:2011-12-14 18:01:56
【问题描述】:
我的光标正在从 sqlite 获取数据。
msgsdbadapter = new MSGSDBAdapter(this);
msgsdbadapter.open();
cons_cursor = msgsdbadapter.fetchConversations();
startManagingCursor(cons_cursor);
之后,我创建了一个 SimpleCursorAdapter 并将其分配给 ListView。 ListView 现在可以很好地显示一些记录了。
String[] from = new String[] { MSGSDBAdapter.KEY_FROM, MSGSDBAdapter.KEY_MSG, MSGSDBAdapter.KEY_DATE};
int[] to = new int[] { R.id.lblFrom, R.id.lblMsgExcerpt, R.id.lblDate };
cons_cursor_adapter = new SimpleCursorAdapter(context, R.layout.conversation_item, cons_cursor, from, to);
lvConversations.setAdapter(cons_cursor_adapter);
接下来,我在表中插入新行并通知数据集已更改,但 ListView 未更新
msgsdbadapter.createMsg(msg);
cons_cursor_adapter.notifyDataSetChanged();
我什么时候应该关闭数据库连接?
【问题讨论】:
-
onDestroy之前不需要关闭
-
我认为您需要更新已传递给适配器的游标。
-
如何更新游标?我可以创建新光标并将其再次分配给适配器。但是这样好像不好?
标签: android sqlite listview cursor