今天需要给一个menu动态添加一个item,先把方法记录如下

    @Override
public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, MENU_REVET, 0, R.string.revert)
.setEnabled(true)
.setIcon(R.drawable.ic_settings_schpwroff)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_SAVE, 0, R.string.done)
.setEnabled(true)
.setIcon(R.drawable.ic_settings_schpwroff)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return super.onCreateOptionsMenu(menu);
}

上面几个方法我们简单介绍下

setEnable:这个是设置menuItem可点击状态,设置为false,会显示灰色

setIcon:设置图标

setShowAsAction:设置menu显示位置

现在我们重点介绍下最后一个方法-add

这个方法里面有四个参数,它们的意义分别为

第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。它对应方法

int i = item.getGroupId();

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

int id = item.getItemId();

第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。如果两个位置数值一样,那么先定义的拍前面。而且,groupid并不影响排列顺序。
       第四个String类型的title参数,表示选项中显示的文字。

我们看下一个例子

    public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
menu.add("hah").setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add("heihei").setEnabled(true).setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add(1, 11, 0, "1-1").setEnabled(false);
menu.add(1, 12, 0, "1-2");
menu.add(1, 13, 2, "1-3");
menu.add(2, 11, 3, "2-1");
menu.add(2, 12, 4, "2-2");
return true;
}

结果如下

最新文章

  1. PHP MYSQL单向同步方案
  2. INI 文件的读写操作
  3. Java 内部类和匿名类 实现JButton动作 ActionListener类
  4. EditText使用详解-包含很多教程上看不到的功能演示
  5. Centos 7 yum 安装Apache
  6. yii2使用Gii生成代码
  7. 伪造 UDP 包源 IP 地址
  8. 白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连续7-电话问卷调查
  9. javascript系列之DOM(二)
  10. Java Socket与操作系统的关系
  11. 统计solr multivalued 字段中数目
  12. bolt_storage.go
  13. DataGrid获取单元格的值
  14. Linux:Day2 发行版本、命令获取
  15. InstallShield12的安装破解方法
  16. cf——Sasha and a Bit of Relax(dp,math)
  17. A. Nephren gives a riddle
  18. MySQL修改密码和忘记ROOT密码
  19. 简话Angular 06 Angular自定义指令
  20. 手动配置SVN服务

热门文章

  1. Opencv YAML和XML格式文件操作详解
  2. PatentTips - Virtualizing performance counters
  3. C++调用Lua的性能測试
  4. 基于BP神经网络的简单字符识别算法自小结(C语言版)
  5. ZOJ 2588 Burning Bridges(无向连通图求割边)
  6. 免费WiFi初体验——个小白的WiFi旅程
  7. QThread 爬坑之旅(三种办法解决QObject: Cannot create children for a parent that is in a different thread)
  8. BZOJ3875: [Ahoi2014&Jsoi2014]骑士游戏
  9. PHP date()获取某时间段以周、月、季度为粒度的时间段数组
  10. jq PC做滚动效果经常用到的各类参数【可视区判断】