http://blog.csdn.net/hello_1s/article/details/51837394
要使用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, "分享");
}
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
扩展:
contextMenu.add(~)就是Menu的add方法。
第一个参数groupId:对菜单项进行分组
第二个参数itemId:对应菜单项中的每一项,该参数最关键,用来判断之后点击的是哪个菜单项
第三个参数orderId:是控制菜单项的显示顺序的,默认为0,及按照add的顺序显示
第四个参数title:就是菜单项上所显示的文字
- 1
- 2
- 3
- 4
- 5
- 6
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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
扩展:
item.getItemId()是获取菜单项的Id,然后判断点击的是哪个菜单项,去做相应操作
menuInfo.position()获取的是点击的是listView中的哪个条目的位置