首页 > 代码库 > 第四十一讲:Android之Menu菜单(二)
第四十一讲:Android之Menu菜单(二)
春蚕到死丝方尽,人至期颐亦不休。一息尚存须努力,留作青年好范畴。—— 吴玉章
本讲内容:子菜单 SubMenu
android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。
我们通过一个例子感受一下,代码的讲解都写在注释里了
下面是MainActivity.java主界面文件:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 你可以通过addSubMenu(int groupId, int itemId, int order, int titleRes)方法非常方便的创建和响应子菜单。 @Override public boolean onCreateOptionsMenu(Menu menu) { // 一个menu可以包括多个子菜单 SubMenu subMenu=menu.addSubMenu(Menu.NONE, Menu.FIRST+1, Menu.NONE, "系统设置"); // 子菜单可以包括多个菜单项 MenuItem menuitem1 = subMenu.add(Menu.NONE, Menu.FIRST+1, 1, "显示设置"); subMenu.add(Menu.NONE, Menu.FIRST +2, 2, "网络设置"); subMenu.add(Menu.NONE, Menu.FIRST+3, 3, "高级设置"); subMenu.add(Menu.NONE, Menu.FIRST+4, 4, "安全设置"); // 子菜单项不支持显示图标,这样做是没意义的,尽管不会报错! menuitem1.setIcon(R.drawable.ic_launcher); //但是子菜单本身是支持图标的 subMenu.setIcon(R.drawable.ic_launcher); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } }
下面是运行结果:
在上一讲我们再补充一个选项菜单 OptionsMenu 例子
下面是MainActivity.java主界面文件:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 添加4个菜单项,分成2组 int group1 = 1; int group2 = 2; menu.add(group1, 1, 1, "item 1"); menu.add(group1, 2, 2, "item 2"); menu.add(group2, 3, 3, "item 3"); menu.add(group2, 4, 4, "item 4"); // 显示菜单 //menu.removeGroup(group1); // 删除一组菜单 menu.setGroupVisible(group2, true); // 设置一组菜单是否可见 menu.setGroupEnabled(group2, true); // 设置一组菜单是否可点 menu.setGroupCheckable(group2, true, true); ; // 设置一组菜单的勾选情况 return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: Toast.makeText(this, "---1----", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this, "---2----", Toast.LENGTH_SHORT).show(); break; case 3: Toast.makeText(this, "---3----", Toast.LENGTH_SHORT).show(); break; case 4: Toast.makeText(this, "---4----", Toast.LENGTH_SHORT).show(); break; default: //对没有处理的事件,交给父类来处理 return super.onOptionsItemSelected(item); } // 返回true表示处理完菜单项的事件,不需要将该事件继续传播下去了 return true; } }
本讲到这里,谢谢大家!
第四十一讲:Android之Menu菜单(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。