定义一个Activity菜单

   

重写Activity的onCreateOptionsMenu方法来为Activity定义一个菜单。这个方法在Activity的菜单第一次显示时触发。

 

onCreateOptionsMenu收到一个Menu对象的参数。你可以存储Menu的引用,在onCreateOptionsMenu下一次调用之前,在你的代码的任何地方使用。

 

你应该总是调用基类的实现,因为它会酌情的自动包含一些额外的系统菜单选项。

 

使用Menu对象的add方法来填入菜单。为每一个菜单项,你需要指定:

 

ID,用来分开属于不同组的处理和分类的菜单项

 

独一无二的菜单项ID。因为效率的原因,菜单项的选择一般都是由onOptionsItemSelected事件处理器处理。所以,这个独一无二的ID非常重要,用来判断哪个菜单项被按下。定义每个菜单项ID作为Activity类的静态变量是很方便的。你可以使用Menu.First静态变量,并通过简单的增加值来给下一个项。

 

菜单项的顺序值。用来定义子菜单显示的位置。

 

菜单文本,可以是字符串或者字符串资源

 

当你完成菜单的填入工作,返回True来允许Android显示菜单。

 

接下来的代码片段显示了如果添加一个菜单项到Activity菜单中:

 

static final private int MENU_ITEM = Menu.FIRST;

@Override

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

// Group ID

int groupId = 0;

// Unique menu item identifier. Used for event handling.

int menuItemId = MENU_ITEM;

// The order position of the item

int menuItemOrder = Menu.NONE;

// Text to be displayed for this menu item.

int menuItemText = R.string.menu_item;

// Create the menu item and keep a reference to it.

MenuItem menuItem = menu.add(groupId, menuItemId,

menuItemOrder, menuItemText);

return true;

}

 

Menu对象相同,调用add方法会返回一个菜单项引用,它直到下一次调用onCreateOptionsMenu方法之前有效。与其维护每一个菜单项的引用,不如使用Menu.findItem方法,通过传入菜单项ID来获取特定的菜单项。

posted on 2009-07-24 17:33  xirihanlin  阅读(1571)  评论(0编辑  收藏  举报