选项菜单和子菜单与上下文菜单介绍

网络112 柳内恒

不管是在电脑上还是在手机上,菜单是不可缺少的一个重要部分,今天我们学习一下子菜单的介绍。

        

1. 选项菜单和子菜单

选项菜单就是按“菜单”键时所弹出的菜单选项,通常选项菜单最多只能显示6个选项,当选项多于6个是时,最后一个选项会被默认的变成一个子菜单“更多”。当点击“更多”时就会弹出其它没有显示完的选项。

(1)新建一个名为“MenuTest”的Android Project。新建以后的代码如下:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EditText t1=(EditText)findViewById(R.id.t1);//注册文本框t1
        Button b1=(Button)findViewById(R.id.b1);//注册按钮b1
        this.registerForContextMenu(t1);//为文本框t1注册上下文菜单
        this.registerForContextMenu(b1);
    }

(2)在MenuTestActivity类中,右单击Source→Override/Implement Methods。通过onCreateOptionsMenu()方法来生成选项菜单,代码如下:

public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu);//调用父类的方法
        SubMenu subMenu=menu.addSubMenu("系统设置");//主菜单
        subMenu.add(1,1,1,"显示设置");//菜单项
        subMenu.add(1,2,2,"标题设置");
        subMenu.add(1,3,3,"文件设置");
        subMenu.add(1,4,4,"菜单设置");
        SubMenu subMenu2=menu.addSubMenu("文件");
        subMenu2.add(1,1,1,"新建文件");
        subMenu2.add(1,2,2,"文件修改");
        SubMenu subMenu3=menu.addSubMenu("编辑");
        subMenu3.add(1,1,1,"编辑部份");
        subMenu3.add(1,2,2,"编辑全部");
        SubMenu subMenu4=menu.addSubMenu("新建文件夹");
        subMenu4.add(1,1,1,"单个新建");
        subMenu4.add(1,2,2,"批量新建");
        SubMenu subMenu5=menu.addSubMenu("设置墙纸");
        subMenu5.add(1,1,1,"相册");
        subMenu5.add(1,2,2,"系统墙纸");
        SubMenu subMenu6=menu.addSubMenu("搜索");
        subMenu6.add(1,1,1,"文件搜索");
        subMenu6.add(1,2,2,"文章搜索");
        SubMenu subMenu7=menu.addSubMenu("新建文件");
        subMenu7.add(1,1,1,"空白文件");
        subMenu7.add(1,2,2,"模板文件");
        return true;
    }

2. 上下文菜单

上下文菜单就是在Android系统中长按某控件所弹出的菜单,就是Windows单击鼠标右键弹出的菜单。

(1)注册上下文菜单

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EditText t1=(EditText)findViewById(R.id.t1);//注册文本框t1
        Button b1=(Button)findViewById(R.id.b1);//注册按钮b1
        this.registerForContextMenu(t1);//为文本框t1注册上下文菜单
        this.registerForContextMenu(b1);
    }

(2)生成上下文菜单

public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
        if(v.getId()==R.id.t1)//判断用户选择的对象
        {
          menu.clear();
          menu.setHeaderTitle("文件操作");//上下文菜单
          menu.add(0,1,Menu.NONE,"发送");
          menu.add(0,2,Menu.NONE,"标记为重要");
          menu.add(0,3,Menu.NONE,"重命名");
          menu.add(0,4,Menu.NONE,"删除");
        }
        else if(v.getId()==R.id.b1)
        {
              menu.setHeaderTitle("编辑操作");//上下文菜单
              menu.add(0,1,Menu.NONE,"发送");
              menu.add(0,2,Menu.NONE,"标记为重要");
        }
    }

(3)响应上下文菜单

 public boolean onContextItemSelected(MenuItem item) {  //响应上下文菜单
        // TODO Auto-generated method stub
        t1.setText(item.getTitle());
        return true;
    }

3. 在写上下文菜单的代码中需要注意要为需要弹出上下文菜单的控件注册上下文菜单。

转载于:https://www.cnblogs.com/liuneiheng/archive/2013/04/18/3028578.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值