我的光标是从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);

接下来,我在表中插入新行并通知dataset changed,但是listview没有更新
msgsdbadapter.createMsg(msg);
cons_cursor_adapter.notifyDataSetChanged();

我应该什么时候关闭数据库连接?

最佳答案

您需要requery()现有的Cursor,或者再次运行查询以获取新的Cursor,并将新的Cursor交换到您的CursorAdapter中。

10-08 00:59