android从数据库中删除项目但不是表单列表视图

时间:2015-12-09 14:02:28

标签: android

我有一个自定义列表视图,其中包含数据库中的数据。 在我的列表适配器中,我设置了onlongclicklistener来删除数据库中的项目:

row.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {

            AlertDialog alertDialog = new AlertDialog.Builder(context).create();
            alertDialog.setTitle(context.getResources().getString("TITEL"));

            alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "NO",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
            alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "YES",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {

                            String delete = "DELETE FROM "+DatabaseHelper.DATABASE_TABLE+" " +
                                    "WHERE "+DatabaseHelper.COLUMN_ID+" = "+databaseListItems.getID();

                            sqlHandler = new DatabaseHandler(context);
                            sqlHandler.executeQuery(delete);

                            dialog.dismiss();
                        }
                    });

            alertDialog.show();
            return false;
        }
    });

项目将在数据库中删除,但不会在列表视图中删除。如果我重新加载列表视图,该项目将消失 删除后如何重新加载列表视图?

2 个答案:

答案 0 :(得分:0)

您应该按照以下两个步骤进行操作:

1)当您确认删除时,您必须从适配器中使用的对象中删除该项以填充列表

2)然后,您必须致电notifyDatasetChanged()

如果您不从适配器中删除该项,则会在名为notifyDatasetChanged()的列表中再次加载该项

答案 1 :(得分:0)

执行数据库查询后,从arraylist中删除该项目,使用此

填充列表视图
myList.delete(position);

并致电

notifyDatasetChanged();

获取项目位置,您可以在listview上设置setOnItemLongClickListener。