0 Comments

菜单事件

发布于:2012-11-20  |   作者:广州网站建设  |   已聚集:人围观
菜单事件

Activity类还有一些与菜单相关的事件方法,这些方法的定义如下:广州网站建设


  1. public boolean onPrepareOptionsMenu(Menu menu);  
  2. public void onOptionsMenuClosed(Menu menu);  
  3. public void onContextMenuClosed(Menu menu);  
  4. public boolean onMenuOpened(int featureId, Menu menu); 

这些方法的含义如下。广州网站建设

onPrepareOptionsMenu:在显示选项菜单之前被调用。一般可用来修改即将显示的选项菜单。

onOptionsMenuClosed:在关闭选项菜单时被调用。

onContextMenuClosed:在关闭上下文菜单时被调用。

onMenuOpened:在显示选项菜单之前被调用。该方法在onPrepareOptionsMenu方法之后调用。广州网站建设

 从菜单资源中装载菜单

前面介绍的各种类型的菜单都是通过代码添加的,Android SDK还允许我们从菜单资源中装载菜单。Android工程中的所有菜单资源都在res\menu目录中,例如,下面就是一个包含3个菜单项的菜单资源文件。广州网站设计


  1. file_menu.xml  
  2. <?xml version="1.0" encoding="utf-8"?> 
  3. <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
  4.     <item android:title="新建" /> 
  5.     <item android:title="打开" /> 
  6.     <item android:title="退出" /> 
  7. </menu> 

编写完了菜单资源,还必须在onCreateOptionsMenu或onCreateContextMenu方法中使用如下的代码来装载这个菜单资源。在本例中在onCreateContextMenu方法中将file_menu.xml文件中的内容作为上下文菜单添加。广州网站设计


  1. getMenuInflater().inflate(R.menu.file_menu, menu); 

由于在6.1.7节已经使用代码添加了一些上下文菜单,因此,file_menu.xml文件中的3个菜单项将添加到原有菜单项的后面,如图6.8所示。广州网站设计

图6.8  从菜单资源中装载菜单
飞机