首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OnItemLongClickListener删除项目

使用OnItemLongClickListener删除项目
EN

Stack Overflow用户
提问于 2014-02-11 15:49:53
回答 1查看 1.4K关注 0票数 0

我想使用一个ListView从OnItemLongClickListener中删除一个项目。

这是我的代码,使一个AlertDialog出现时,我OnLongClick一个项目。

我还需要在删除项目时使用哪些代码?

代码语言:javascript
复制
public class DeleteItem extends Activity {

 ListView list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        list = (ListView) findViewById(R.id.listView);
        list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                AlertDialog.Builder alert = new AlertDialog.Builder(DeleteItem.this);
                alert.setMessage("Are you sure you want to delete this?");
                alert.setCancelable(false);
                alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //Here I need the delete code
                    }
                });
                alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();

                    }
                });


                return false;

            }
        });

       }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-11 15:56:13

ArrayAdapter有remove(int index)方法

代码语言:javascript
复制
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(final AdapterView<?> arg0, View arg1,
                final int position, long arg3) {
            AlertDialog.Builder alert = new AlertDialog.Builder(DeleteItem.this);
            alert.setMessage("Are you sure you want to delete this?");
            alert.setCancelable(false);
            alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ArrayAdapter yourArrayAdapter = (ArrayAdapter) arg0.getAdapter();
                    yourArrayAdapter.remove(position);
                    yourArrayAdapter.notifyDataSetChanged();
                }
            });
            alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();

                }
            });


            return false;

        }
    });

使用适配器的一般类型调整强制转换。只有当您向适配器提供元素集合时,它才能工作。如果提供了Array,它将引发异常

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21706521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档