从listview中删除项目时出错

时间:2011-11-21 10:48:15

标签: java android

我正在开发一个Android应用程序,其中我有一个静态列表视图,其中包含5个项目。

我希望当我点击所选项目时,会出现一个警告对话框,其中包含按钮是或否。如果我点击是,则应删除所选项目。

有可能吗?如果有,怎么样?任何人都可以指导我。列表中的数据是静态的

这是我的java类代码

http://pastebin.com/AMJy9cBH

4 个答案:

答案 0 :(得分:2)

    ArrayList<String> sampleList;
    ArrayAdapter<String> sampleListArrayAdapter;

    ListView sampleListView = (ListView) findViewById(R.id.sampleListView);

    sampleListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        AlertDialog.Builder builder = new AlertDialog.Builder(
            SampleActivity.this);
        builder.setMessage("Do you want delete this item?");
        builder.setCancelable(false);

        // On clicking "Yes" button
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            sampleList.remove(position);

            sampleListArrayAdapter.notifyDataSetChanged();
        });

        // On clicking "No" button
        builder.setNegativeButton("No", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
            dialog.cancel(); // Cancel dialog
            }
        });

        AlertDialog alert = builder.create();
        alert.show();
        }
    });

答案 1 :(得分:0)

如果要删除元素,请调用adapter.clear(),然后调用adapter.notifyDataSetChanged()。

答案 2 :(得分:0)

从数据列表中删除该项目,并通知列表适配器有关更改的信息。

data.remove(Item);
notifyDataSetChanged();

警报对话框教程在此处:http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog

答案 3 :(得分:0)

当用户选择删除行时,获取用户希望删除该行的行号,请参阅源数组的相应元素,删除该元素然后调用Adapter.notifyDataSetChanged()