从arraylist中删除项目

时间:2017-06-20 22:41:47

标签: java android listview arraylist alertdialog

我正在尝试创建一个AlertDialog,让您可以选择删除在Listview中单击的项目。我得到了带有2个选项的AlertDialog,但是当我点击它们时,AlertDialog就会关闭,没有任何事情发生。 以下代码,谢谢你 此外,当我按下正面按钮(应该删除该项目)并再次按下该项目时,应用程序崩溃。

private void registerClickCallBack() {
    ListNote = (ListView) findViewById(R.id.lv1);
    ListNote.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> paret, View viewClicked, final int position, long id) {

            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setMessage("Notitie verwijderen?")
                    .setCancelable(false)
                    .setPositiveButton("Ja", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            lv.remove(position);
                        }
                    })
                    .setNegativeButton("Nee", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });
            AlertDialog alert = builder.create();
            alert.show();

            ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, lv);
            ListNote.setAdapter(adapter);
        }
    });
}` 

2 个答案:

答案 0 :(得分:0)

我已经明白了。我忘了在onclick方法中编辑listview。所以arraylist是空的,但价值仍然在listview中。我移动了arrayadapter,现在工作正常。

答案 1 :(得分:-1)

我相信你正在寻找arrayList.RemoveAt(index)

您正在尝试使用arrayList.Remove(Object)

您尝试删除的对象是一个名为“position”的int,它在您的arrayList(lv)中不存在,因此不会抛出异常。

删除对象在特定索引和删除特定对象之间存在差异。取决于你传递的参考文献。

编辑:尝试澄清