我现在正在制作一个ShopingList应用程序,我正在使用SQLite数据库来存储数据,我遇到了一个问题:当我尝试将一些项目添加到listview时,我将它出现在列表中之后重新开启应用。这是一段代码,负责在列表视图中添加项目。
edtxt.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction()== KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
String name = edtxt.getText().toString();
dbcon.insertData(name);
adapter.notifyDataSetChanged();
edtxt.setText("");
return true;
}
}
return false;
}
});
你有什么想法吗?如果您需要另外一段代码,请随时问我。提前谢谢大家!
更新:一切正常!我所做的是调用getLoaderManager()。getLoader(0).forceLoad();在onCreate()方法中,并添加了getLoaderManager()。getLoader(0).forceLoad();我做了每次更改后都会列出,例如删除,编辑等。
答案 0 :(得分:0)
看起来您正在向数据库添加一行,但您没有更新光标。
编辑:
这是一个更好的答案: update the listview after inserting a new record with simpleCursorAdapter - requery()
答案 1 :(得分:0)
您必须将数据ex:name添加到适配器数据集,然后在适配器上调用notifyDataSetChanged! 您在数据库中添加数据并告诉适配器它的数据已更新,但此处的适配器数据集未更改!