菜单项选项

   

正如你所熟悉的那样,Android支持大多数传统的菜单项选项,包括iconshortcutcheckboxradio button,如下描述:

 

CheckboxesRadio Buttons

Checkboxesradio buttons作为菜单项在扩展菜单和子菜单中可见,如图4-6所示。设置菜单项为checkbox,使用setCheckable方法。checkbox的状态由setChecked方法控制。

 

Radio button组是一组显示循环选择的按钮,每一次只能选择其中一个项目。在同一个组里,如果选择了一个,那么其它的自动变成未选择状态。创建radio button组,需要指定相同的组ID给每一个项目,然后调用menu.setGroupCheckable方法,传入组ID,并将其它参数指定为true

 

Checkbox在图标菜单中不可见,所以,表示为checkbox的菜单项请保留给子菜单和扩展菜单使用。下面的代码片段给出了如何添加一个checkbox和一组三个radio button

 

// Create a new check box item.

menu.add(0, CHECKBOX_ITEM, Menu.NONE, “CheckBox”).setCheckable(true);

 

// Create a radio button group.

menu.add(RB_GROUP, RADIOBUTTON_1, Menu.NONE, “Radiobutton 1”);

menu.add(RB_GROUP, RADIOBUTTON_2, Menu.NONE, “Radiobutton 2”);

menu.add(RB_GROUP, RADIOBUTTON_3, Menu.NONE,  “Radiobutton 3”).setChecked(true);

menu.setGroupCheckable(RB_GROUP, true, true);

 

Shortcut Keys

你可以使用setShortcut方法给菜单项指定快捷键。每一次调用setShortcut需要两个快捷键,一个是数字键,另一个可以是全键盘中的键。任何键不区分大小写。

 

下面的代码片段给出了如何为两种模式设定快捷键:

 

// Add a shortcut to this menu item, ‘0’ if using the numeric keypad

// or ‘b’ if using the full keyboard.

menuItem.setShortcut(‘0’, ‘b’);

 

Condensed Titles

图标菜单不显示快捷键和checkbox,所以它需要经常修改它显示的文本来显示它的状态。接下来的代码给出了如何为图标菜单设定指定的文本:

 

menuItem.setTitleCondensed(“Short Title”);

 

Icons

Icondrawable资源ID,用来在菜单项中显示。Icons只能在图标菜单中显示;它们在扩展菜单和子菜单中不可见。下面的代码片段给出了如何为菜单项应用图标:

 

menuItem.setIcon(R.drawable.menu_item_icon);

 

Menu Item Click Listener

当菜单项被选择时会执行的事件处理函数。考虑到效率的因素,这种做法不提倡;作为替代,菜单项的选择应该被onOptionsItemSelected处理器处理,如这个章节的后面所示。应用一个click listener到菜单项上,使用下面代码片段所示的样式:

 

menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {

 

public boolean onMenuItemClick(MenuItem _menuItem) {

[ ... execute click handling, return true if handled ... ]

return true;

}

});

 

Intents

当点击菜单项没有被MenuItemClickListenerActivityonOptionsItemSelected处理函数处理的话,指定给菜单项的Intent就会被触发。触发时,Android会执行startActivity,传入一个指定的Intent。下面的代码片段给出了如何指定一个Intent给菜单项:

 

menuItem.setIntent(new Intent(this, MyOtherActivity.class));

posted on 2009-07-28 09:54  xirihanlin  阅读(1005)  评论(0编辑  收藏  举报