Android开发之菜单介绍1:选项菜单(Option menu)

2014-08-17 09:51:56|?次阅读|上传:huigezrx【已有?条评论】发表评论

关键词:Java, Android, Web, 移动应用|来源:唯设编程网

这种类型的菜单可以用来导航至应用程序的任何重要部分,例如从任何个部分跳转至帮助页面。 选项菜单的另一个重要用途是针对给定屏幕进行选项设定。 这些选项可以以可选( checkable) 菜单选项的形式进行配置。 用户按下菜单按钮调出的初始菜单并不直持可选菜单项。相反,这些菜单项必须放置在SubMenu (子菜单)控件中, 它是一种在菜单中进行配置的Menu 控件。SubMenu 对象支持可选菜单项但并不直持图标和其他SubMenu 菜单项。在上面的例子中,“Style”菜单演示了在程序中向之前的Menu 添加SubMenu 控件的方法。

Android开发之菜单介绍1:选项菜单

上面的添加SubMenu代码必须添加在onCreateOptionsMenu() 方法实现的返回表达式之前。它向之前的菜单中添加了一个带有图标的菜单项,称为"Style" 。当选中这个" Style " 选项时, 将显示一个带有两个SubMenu 控件的弹出式菜单。这两个菜单项被分组在了一起, 除此,默认状态下的可选框图标( checkable icon ) 和单选按钮图标类似,并且其是否处于选择状在是在创建时被设定的。

要处理菜单选项的选择事件, 我们需要重载Activity的onOptionsItemSelected() 方法:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        if (item.getItemId() == light_id) {
            item.setChecked(true);
            isLight = true;
            return true;
        } else if (item.getItemId() == dark_id) {
            item.setChecked(true);
            isLight = false;
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

这一方法必须调用父类的onOptionsltemSelected() 方法以进行一些基本的操作。这需要传入一个实际的Menultem 对象,我们可以使用它来获取之前赋予的标识符,以确定对应的被选中的菜单项,从而进行相应的操作。 这里, 我们只改变了值然后返回。默认地,当某一个菜单项被选择后, Menu 控件连同其可选菜单项都会一并消失。 这意味着它适用于进行快速设定, 而不适用于一次性对多个选项进行设置的扩展设定。

当你向选项菜单中加入了太多菜单项时, 具体地说多于5 个,将会出现一个显示为"More"的菜单项。如果用户选择了它,整个菜单将会被显示出来。完整的菜单不会显示其图标, 而且, 虽然可选菜单项也会得到显示,但并不能在这里进行设定。另外,菜单项的完整标题( full title) 也平会显示。起初的菜单,也就是图标菜单, 仅显示菜单标题的一部分。你可以为每个菜单项设置condensedTitle 属性,这样, 它就会显示这一属性的值作为标题, 而不是截取之后的原菜单标题。例如,对于标题" Instant Message", 你可以设定它的condensedTitle 属性为" IM “。

<12>
发表评论0条 】
网友评论(共?条评论)..
Android开发之菜单介绍1:选项菜单(Option menu)