只有在我重新打开应用程序后,才会在listview中显示该项目

时间:2014-09-18 20:40:19

标签: android listview

我现在正在制作一个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();我做了每次更改后都会列出,例如删除,编辑等。

2 个答案:

答案 0 :(得分:0)

看起来您正在向数据库添加一行,但您没有更新光标。

编辑:

这是一个更好的答案: update the listview after inserting a new record with simpleCursorAdapter - requery()

答案 1 :(得分:0)

您必须将数据ex:name添加到适配器数据集,然后在适配器上调用notifyDataSetChanged! 您在数据库中添加数据并告诉适配器它的数据已更新,但此处的适配器数据集未更改!