android自定义optionmenu,Android 之 选项菜单Option Menu

[size=small][color=olive][b]

使用菜单资源:

概述:Android中的菜单分为选项菜单、上下文菜单和子菜单;

选项菜单:option menu:最常见的菜单,当用户单击设备上的menu按钮的按键时,

弹出的就是选项菜单;

上下文菜单(context menu):android中长按控件后出现的菜单;

子菜单(sub menu):android中点击子菜单将弹出悬浮窗口显示子菜单项,子菜单不

支持嵌套;

菜单的创建方式:1、布局文件中声明创建; 2、在代码中创建;

选项菜单:

点击设备上Menu弹出的菜单;

所用知识点:

menu.add(groupId, itemId, order, title);

参1:组号,android可以给菜单分组,分组能更加方便快捷的操作同一组菜单;

参2: 指定每个菜单项的唯一ID号,可自定义也可系统分配;

用途:在响应菜单的时候要通过ID来判断哪个菜单借点被点击了;(可通过资源文件进行)

参3:菜单项的显示序号,编号小的位置在前面

注:选项菜单一个页面最多只能显示六个 , 如果多于六个那么系统会自动的生成more按钮,点击可以看到未显示的菜单项;

案例:添加7个选项菜单,并实现点击菜单后提示用户点击的是哪个菜单;

在程序中实现:

java代码:

/*选项菜单:创建选项菜单*/[/b][/color][/size]

public boolean onCreateOptionsMenu(Menu menu) {        /* 添加菜单项的内容 */        menu.add(Menu.NONE, 0, 1, "menu1");        menu.add(Menu.NONE, 1, 2, "menu2");        menu.add(Menu.NONE, 2, 3, "menu3");        menu.add(Menu.NONE, 3, 4, "menu4");        menu.add(Menu.NONE, 4, 5, "menu5");        menu.add(Menu.NONE, 5, 6, "menu6");        menu.add(Menu.NONE, 6, 7, "menu7");        menu.add(Menu.NONE, 7, 8, "menu8");        return true;    }    效果如图:    消息响应:        上述的代码只是完成了选项菜单的界面并没有对菜单项进行消息响应;android中提供了多种响应        菜单方式;        1、重写activity类的onOptionsItemSelected(MenuItem)回调方法;    java代码如下:        /* 选项菜单: 用于写事件的方法 *//* 参数介绍:MenuItem 表示的是菜单项  */    public boolean onOptionsItemSelected(MenuItem item) {        /* 获取菜单项的ID */        int temp = item.getItemId();        /* 通过ID 获取指定选项菜单项,并执行该菜单项对应的操作  */        /* 代码创建菜单的消息响应 */        switch(temp){        case 0:            Toast.makeText(MainActivity.this, "menu1", 1000).show();            break;        case 1:            Toast.makeText(MainActivity.this, "menu2", 1000).show();            break;        case 2:            Toast.makeText(MainActivity.this, "menu3", 1000).show();            break;        }        /* 响应消息 方法回调 */        return super.onOptionsItemSelected(item);    }

效果如图:

------------------------------------------------------------------------

xml布局实现选项菜单:

xml布局:

    java中代码:        /*选项菜单:创建选项菜单*/        public boolean onCreateOptionsMenu(Menu menu) {            /* xml 布局实现选项菜单  */            MenuInflater inflater = getMenuInflater();            inflater.inflate(R.menu.main, menu);            return true;        }    /* 选项菜单: 用于写事件的方法 *//* 参数介绍:MenuItem 表示的是菜单项  */    public boolean onOptionsItemSelected(MenuItem item) {        /* 获取菜单项的ID */        int temp = item.getItemId();        /* xml布局菜单的消息响应 */        switch(temp){        case R.id.one:            Toast.makeText(MainActivity.this, "menu1", 1000).show();            break;        case R.id.two:            Toast.makeText(MainActivity.this, "menu2", 1000).show();            break;        case R.id.three:            Toast.makeText(MainActivity.this, "menu3", 1000).show();            break;        }        /* 响应消息 方法回调 */        return super.onOptionsItemSelected(item);    }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值