Android中的ContextMenu又称上下文菜单,当长按某个View时,调出上下文菜单。
在Android中,还有一类菜单——OptionsMenu,可以称为选项菜单。与ContextMenu不同的是,OptionsMenu是属于一个Activity的,而ContextMenu是和某个View绑定的,针对的是这个View。
实现上下文菜单
要实现一个上下文菜单,需要经过以下三个步骤:
1、注册上下文菜单
这里给ListView注册了上下文菜单。
this.listView = (ListView) findViewById(R.id.listView);
this.registerForContextMenu(listView);
2、生成上下文菜单
重写Activity或者Fragment中的onCreateContextMenu方法,生成上下文菜单。
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == listView) {
menu.setHeaderIcon(R.mipmap.ic_launcher);
menu.setHeaderTitle("请选择:");
menu.add(0, 0, 0, "获取此item的position");
menu.add(0, 1, 0, "取消");
}
}
3、菜单事件监听
重写Activity或者Fragment中的onContextItemSelected方法,根据ItemId来判断当前选中的是哪个item,然后做对应处理。
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInf