ListView长按弹出菜单项

来源:互联网 发布:全能营销软件 编辑:程序博客网 时间:2024/05/01 21:39

要使用listview的setOnCreateContextMenuListener监听,并重写onContextItemSelected方法,共同完成弹出菜单项,点击菜单项做相应的操作。

1、为ListView添加长按弹出菜单项事件

listView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {            @Override            public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {                contextMenu.add(Menu.NONE, 0, 0, "删除");                contextMenu.add(Menu.NONE, 1, 0, "分享");            }        });

扩展:

contextMenu.add(~)就是Menu的add方法。第一个参数groupId:对菜单项进行分组第二个参数itemId:对应菜单项中的每一项,该参数最关键,用来判断之后点击的是哪个菜单项第三个参数orderId:是控制菜单项的显示顺序的,默认为0,及按照add的顺序显示第四个参数title:就是菜单项上所显示的文字

2、重写onContextItemSelected方法(也就是点击菜单项后要做的事)

//选中菜单Item后触发    public boolean onContextItemSelected(MenuItem item){        //关键代码在这里        AdapterView.AdapterContextMenuInfo menuInfo;        menuInfo =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();        switch (item.getItemId()){            case 0:                //点击第一个菜单项要做的事,如获取点击listview的位置                Toast.makeText(IndexActivity.this, String.valueOf(menuInfo.position), Toast.LENGTH_LONG).show();                break;            case 1:            //点击第二个菜单项要做的事,如获取点击的数据                Toast.makeText(IndexActivity.this, ""+list.get(menuInfo.position), Toast.LENGTH_LONG).show();                break;        }        return super.onContextItemSelected(item);    }

扩展:

item.getItemId()是获取菜单项的Id,然后判断点击的是哪个菜单项,去做相应操作menuInfo.position()获取的是点击的是listView中的哪个条目的位置
0 0
原创粉丝点击