1.Options Menu.
通过按下手机上的 MENU 键,可以打开 Options Menu 。 Options Menu 最多只能在屏幕最下面显示 6 个菜单项,称为 Icon Menu. 如果添加了多于 6 个的菜单项,将通过 "More" 菜单项显示,这种称为 Expanded Menu. 当 Options Menu 第一次被打开时,系统将调用 Activity 的 onCreateOptionsMenu(Menu menu) 方法, 在这个方法中可以通过配置一个 XML 文件,或者调用 Menu 的 add() 方法来添加你想要的 Menu 。 Menu 的 add() 方法将返回一个 MenuItem 对象,你用通过这个对象来配置一些其他属性。比如: icon , shortcut , intent 。 Menu 的 add() 方法很多,要注意的是 itemId 这个参数,它的唯一性。
当选择了一个 Options Menu 时 , 会调用 onOptionsItemSelected(MenuItem item) 方法。如果想修改 Options Menu ,需要重写 onPrepareOptionsMenu() 方法。
方式一,用 add() 添加:
方式二,通过 XML 文件添加:
在 res/menu/ 下新建 options_menu.xml 文件:
Xml 代码
在 onCreateOptionsMenu() 方法中,我们这样写:
Java 代码
2.Context Menu.
它需要注册到某个 View 对象上,当长按这个 View 大概 2 秒时间,会出现这个 Context Menu 。为某个 View 注册 Context Menu 是用 registerForContextMenu (View view) 方法来实现。 Context Menu 在显示前都会调用 onCreateContextMenu 来生成 menu 。 onContextItemSelected 用来处理选中的菜单项。
注意 :Context Menu 不支持 icons 和 shortcut keys.
Java 代码
注册这个 Context Menu:
registerForContextMenu(getListView());
这里的 getListView() 是 ListActivity 的方法,它将返回一个 ListView. 记住任何一个 View 对象都可以注册一个 Context Menu 。
3.Submenus
4.Menu Features
Menu groups 菜单项分组的功能:
在用 Menu 的 add() 方法时,通过参数 groupId 的设置可以实现分组。 setGroupVisible() 用来显示或者隐藏你的菜单组。 setGroupEnabled() 用来启用或者禁用你的菜单组。 setGroupCheckable() 用来设置你的菜单项是否可选。 setGroupCheckable() 方法有三个参数 int group, boolean checkable, boolean exclusive 。第一个参数是要设置的组,第二个参数是否可选,第三个参数为 true 表示单选, false 表示多选。
Shortcut keys 快捷键:
我们还可以设置快捷键。使用 setAlphabeticShortcut(char),setNumericShortcut(int),setShortcut(char,int) 可以设置字符,数字,组合(字符 + 数字)键。注意: Context Menu 不能添加快捷键。
参考: http://oldman.javaeye.com/blog/709254
http://www.ways2u.com/?post=134