欢迎大家访问我的博客http://blog.youkuaiyun.com/mikejaps,专注于android ios app 开发
1 OptionsMenu 是我们手机上的菜单键弹出的菜单,ContextMenu 则是 我们长按一个控件弹出的菜单
现在大部分浏览器都有长按复制的功能,如下图:
2,ContextMenu 的使用步骤
1.重写Activity或者Fragment中的onCreateContextMenu方法:
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenuInfo menuInfo) {
- super.onCreateContextMenu(menu, v, menuInfo);
- menu.setHeaderTitle("你想干啥?");
- menu.setHeaderIcon(R.drawable.a4c);
- menu.add(0, 0, Menu.NONE, "复制");
- menu.add(0, 1, Menu.NONE, "剪贴");
- menu.add(0, 2, Menu.NONE, "重命名");
- menu.add(1, 3, Menu.NONE, "去新的Activity");
- }
2.重写Activity或者Fragment中的onContextItemSelected方法,实现菜单事件监听,如果把长按事件的返回值设置为true,则不会执行以下方法
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case 0:
- tv.setText(item.getTitle().toString());
- break;
- case 1:
- tv.setText(item.getTitle().toString());
- break;
- case 2:
- tv.setText(item.getTitle().toString());
- break;
- case 3:
- tv.setText(item.getTitle().toString());
- startActivity(new Intent(this, SecondActivity.class));
- break;
- default:
- return super.onContextItemSelected(item);
- }
- return true;
- }
3.给View注册上下文菜单
- tv = (TextView) this.findViewById(R.id.tv);
- this.registerForContextMenu(tv);
3,OptionsMenu 使用,就不在赘述了,相信大家都非常熟悉