Activity类还有一些与菜单相关的事件方法,这些方法的定义如下:广州网站建设
- public boolean onPrepareOptionsMenu(Menu menu);
- public void onOptionsMenuClosed(Menu menu);
- public void onContextMenuClosed(Menu menu);
- public boolean onMenuOpened(int featureId, Menu menu);
这些方法的含义如下。广州网站建设
onPrepareOptionsMenu:在显示选项菜单之前被调用。一般可用来修改即将显示的选项菜单。
onOptionsMenuClosed:在关闭选项菜单时被调用。
onContextMenuClosed:在关闭上下文菜单时被调用。
onMenuOpened:在显示选项菜单之前被调用。该方法在onPrepareOptionsMenu方法之后调用。广州网站建设
从菜单资源中装载菜单前面介绍的各种类型的菜单都是通过代码添加的,Android SDK还允许我们从菜单资源中装载菜单。Android工程中的所有菜单资源都在res\menu目录中,例如,下面就是一个包含3个菜单项的菜单资源文件。广州网站设计
- file_menu.xml
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:title="新建" />
- <item android:title="打开" />
- <item android:title="退出" />
- </menu>
编写完了菜单资源,还必须在onCreateOptionsMenu或onCreateContextMenu方法中使用如下的代码来装载这个菜单资源。在本例中在onCreateContextMenu方法中将file_menu.xml文件中的内容作为上下文菜单添加。广州网站设计
- getMenuInflater().inflate(R.menu.file_menu, menu);
由于在6.1.7节已经使用代码添加了一些上下文菜单,因此,file_menu.xml文件中的3个菜单项将添加到原有菜单项的后面,如图6.8所示。广州网站设计
![]() |
| 图6.8 从菜单资源中装载菜单 |




