如何使用alertDialog从listView中删除项目

时间:2014-04-12 10:54:23

标签: android listview android-listview onclick

我有一个ListView显示不同配置文件的名称,当用户按住项目时,活动显示alertDialog,如果用户按下确认按钮我要从listView中删除元素,从我的ArrayAdapter和来自我的ArrayList。 我知道onItemLongClick方法中的arg2表示所选项的索引,但我希望能够在正按钮的onClick方法中访问它。 有什么建议? 我的ArrayList被称为“ListaUtentiStringa”,ArrayAdapter是“profilesAdapter”,listView被称为listview。 对不起,我的英语不好。

listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {


        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setCancelable(true);
        builder.setTitle("Vuoi davvero cancellare il profilo?");
        builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface dialog, int which) {
                                          // How to remove the selected item?
                            }

                        });

builder.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {

        }

        });

        AlertDialog alert = builder.create();
        alert.show();
        profilesAdapter.notifyDataSetChanged();


    return true;
    }
    }); 

2 个答案:

答案 0 :(得分:1)

这样做:

   listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {


@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
              final int position, long id) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setCancelable(true);
        builder.setTitle("Vuoi davvero cancellare il profilo?");
        builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
         // How to remove the selected item?
          adapter.remove(adapter.getItem(position));
        }

    });

答案 1 :(得分:0)

试试这个..

使用ListaUtentiStringa ArrayListprofilesAdapter adapter作为全局变量

 builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                                      // How to remove the selected item?

                                ListaUtentiStringa.remove(arg2);
                                profilesAdapter.notifyDataSetChanged();
                                dialog.dismiss();
                        }

                    });

修改

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3) {