Android 控件 之 Menu 菜单

时间:2023-03-09 09:08:23
Android 控件 之 Menu 菜单

http://www.cnblogs.com/Mrs-cc/archive/2012/07/21/2603042.html

1.OptionsMenu (选项菜单)用法总结
使用方法:
方法一:添加菜单项:onCreateOptionsMenu(Menu menu)中添加menu.add(Menu.NONE,Menu.FIRST+1,5,"删除").setIcon()------>添加选择菜 单项事件:在onOptionsItemSelected(MenuItem item)中 switch(item.getItemId()),然后添加对应选择事件------>添加关闭菜单事 件:onOptionsMenuClosed(Menu menu),在其中添加代码即可-------->添加准备菜单(菜单显示之前的事件),在其中添加代码即可
方法二:添加菜单的样式:在res中创建menu目录,建立 xml,<menu><item id&&icom.etc></item></menu>-------> onCreateOptionsMenu(Menu menu)中 this.getMenuInflater().inflate(R.menu.options_menu,menu);
函数说明:
add()方法的四个参数,依次是:
1、组别,如果不分组的话就写Menu.NONE,
2、Id,这个很重要,Android根据这个Id来确定不同的菜单
3、顺序,那个菜单现在在前面由这个参数的大小决定,从1到6一次是同上往下,从左到右排。
4、文本,菜单的显示文本
setIcon(图片路径):为菜单设置图标
getMenuInflater().inflate(R.menu.options_menu,menu):
a.inflate的作用是将xml定义的而一个布局找出来,但仅仅是找出来。
b.第一个参数是布局,第二个参数是菜单。
2.ContextMenu上下文菜单
继承自Menu。与选项菜单不同的是:选项菜单服务于Activity,二上下文菜单式注册到某个View对象上的。而且使用上下文菜单需要注册,否则无法显示。最后上下文菜单无法添加图标和快捷键。
使用顺序: 添加菜单的样式:在res中创建menu目录,建立xml,<menu><item id&&icom.etc></item></menu>,每个上下文子菜单对应一个xml -------> 注册:onCreate()中使用registerForContextMenu(控 件);--------->onCreateOptionsMenu(Menu menu)中创建一个MenuInflater,用if判断出传入的View是哪个控件中,在这触发控件所得到的菜单的样 式:inflater.inflate(样式,menu);
3.子菜单 SubMenu
使用顺序:
1、 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
2、 调用SubMenu的add()方法,添加子菜单
3. 用SubMenu.setHeaderIcon(),和SubMenu.setHeadTitle()设置标题 和标题图片。
3、 覆盖onContextItemSelected()方法,响应子菜单的单击事件