onCreateOptionsMenu()方法

这个方法负责生成menu,它是一个回调方法,当按下手机设备上的menu按键的时候,android系统才会生成一个包含两个子项的菜单.

1)在onCreateOptionMenu()方法里边,首先得到super函数调用后的返回值.并且在方法的最后进行返回.

2)调用menu.add()给menu添加一项.

代码如下:

public boolean onCreateOptionMenu(Menu menu)
{
    super.onCreateOptionMenu(menu);
    menu.add(0 , ITEM0 , 0 ,  "显示button1");
    menu.add(0 , ITEM1 , 1 , "显示Button2");
    menu.findItem(ITEM1);
    return true;
}
代码解释:

menu.add(int groupId , int itemId , int orderId ,String title );

groupId : 第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮,如果不用分组就用0.

itemId : 第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。 这个id应该是唯一的.

order : 第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。排序的信息,根据这个字段的大小, menu对其中的项进行排序显示.order小的显示在前边,order大的显示在后边.

titleRes : 第四个String类型的title参数,表示选项中显示的文字。menu项的显示信息.


===========

实现menu响应单击事件,在方法onOptionsItemSelected(MenuItem item),有用该方法的前缀是on,所以依照惯例这依然是一个回调方法.

也就是说这个方法只有在事件触发后才会被android系统自动调用执行.

而这个事件就是单击菜单的某一项(MenuItem),看到这个方法传进来的参数是MenuItem,也就menu当中的某一项.

实现代码如下:

public boolean onOptionsItemSelected(MenuItem item)
{
    switch(item.getItemId())
    {
        case ITEM0:
            actionClickMenuItem1();
            break;
        case ITEM1:
            actionClickMenuItem2();
            break;
    }
    return super.onOptionsItemSelected(item);
}
代码解释:

如何判断单击的到底是哪个MenuItem呢? 这个时候前面设置过的id就发挥作用了.

在前面生成一个menu的时候,给每一个menuItem都赋予了一个唯一的id,通过这个id就可以区分到底是单击那个menuitem了.

这个id通过item.getItemId()获得.

从上面的代码可以看到,单击item0的时候,执行actionClickMenuItem1()方法,同理单击到item1的时候,执行actionClickMenuItem2()方法.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值