Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu)


选项菜单

可以通过两种办法增加选项菜单,一是在menu.xml中添加,该种方式参见Android 资源详解(二) 菜单资源,二是在.java中添加

1、覆盖Activity 的 onCreateOptionsMenu(Menu menu)方法,当我们第一次打开菜单

时该方法被自动调用。

2、调用Menu的 add()方法添加菜单项(Menultem) ,可以调用Menultem的setIcon()

方法来为菜单项设置图标。.1

3、当菜单项(Menuitem) 被选择时,覆盖 Activity 的 onOptionsItemSelected()方法来 响应事件。

如下代码:

publicclassMainActivityextendsActivity{privatestaticfinalintmenu1=Menu.FIRST;privatestaticfinalintmenu2=Menu.FIRST+1;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}publicbooleanonCreateOptionsMenu(Menumenu){menu.add(0,menu1,0,"OK");menu.add(0,menu2,0,"CANCEL");returntrue;}}


上下文菜单

当用户按住屏幕后,弹出的菜单成为上下文菜单。

1、覆盖Activity 的 onCreateContextMenuO方法, 调用 Menu 的 add 方法添加菜单项

2、覆盖onContextItemSelected(MenuIten item) 方法,响应菜单单击事件。

3、调用 registerForContextMenu()方法,为视图注册上下文菜单。当长按视图时,会出现上下文菜单。代码如下:

publicclassMainActivityextendsActivity{privatestaticfinalintmenu1=Menu.FIRST;privatestaticfinalintmenu2=Menu.FIRST+1;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextViewmytext=(TextView)this.findViewById(R.id.text1);this.registerForContextMenu(mytext);}publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuinfo){menu.add(0,menu1,0,"OK");menu.add(0,menu2,0,"CANCEL");}publicbooleanonContextItemSelected(MenuItemitem){intid=item.getGroupId();switch(id){casemenu1:break;casemenu2:break;}returnsuper.onContextItemSelected(item);}}

子菜单


子菜单就是将相同功能的分组进行多级显示的一种菜单,比如,Windows的"文件"菜单中又有"新建"、"打开"、"关闭"等子菜单。Android系统中的子菜单也很多见,如" Settings" (设置)菜单就有其子菜单。

具体步骤如下:

1、覆盖Activity 的 onCreateOptionsMenu()方法,调用 Menu 的 addSubMenu()方法添

加子菜单项 (SubMenu)。

2、调用SubMenu的add()方法,添加子菜单 (SubMenu) 。

3、覆盖onContextItemSelected()方法,响应菜单单击事件。


代码如下:

publicclassMainActivityextendsActivity{privatestaticfinalintmenu1=Menu.FIRST;privatestaticfinalintmenu2=Menu.FIRST+1;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}publicbooleanonCreateOptionsMenu(Menumenu){SubMenufile=menu.addSubMenu("file");//添加子菜单SubMenuedit=menu.addSubMenu("edit");//添加子菜单file.add(0,menu1,0,"new");//为子菜单添加菜单选项file.add(0,menu2,0,"open");returntrue;}}





更多相关文章

  1. Android(安卓)SDK Manager 更新方法
  2. Android(安卓)4.0 横竖屏切换注意事项
  3. Android日期空间(DatePickerDialog)中的年月日不全部显示
  4. Android:Debug certificate expired on DATE 解决方法
  5. android 实现时钟的简单方法
  6. android中GridView关于间距的属性值介绍
  7. Android(安卓)主动获取电量的方法
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 如何开发跨框架组件?[每日前端夜话0xA6]
  2. 前端与后端开发中技术差异的全面对比[每
  3. k8s-kubernetes 入门
  4. 用 ref 访问 Vue.js 程序中的 DOM[每日前
  5. Android(安卓)在一个程序中启动另一个程
  6. MySQL中自增ID起始值修改方法
  7. MySQL出现SELECT list is not in GROUP B
  8. 【凯子哥带你学Android】Android专用Log
  9. 2021.1.17
  10. Debian设置允许root用户以ssh方式登录