Android——选项菜单的创建

前言:

在手机app中,有时候我们需要设置大量的菜单选项,如果直接在UI中显示出来会占用原本就不大的屏幕空间,导致app可用于显示信息的空间减少,降低了用户体验。这时,就需要用到menu控件了。menu控件用于显示应用程序的自定义菜单选项,一般位于app顶栏的右上角,在用户不需要使用到菜单选项的时候menu处于关闭状态,只会占用一个图标的空间,极大地提高了屏幕利用率和用户体验。

步骤:

下面我来讲解一下如何创建应用程序的menu。

1、在res目录下新建一个文件夹,命名为menu

2、右键menu文件夹 - > New - > Menu resource file ,命名为main,点击确定后会生成main.xml文件。

3、在main.xml文件中编写代码:

<item>标签是用来创建菜单项的

4、然后回到Activity,并重写onCreateOptionsMenu()方法(重写方法快捷键:Ctrl + O

并在该方法中编写如下代码:

onCreateOptionsMenu()方法用于创建Menu:

该方法在Activity创建的时候执行,一般只运行一次。getMenuInflater()方法获取MenuInflater对象,再调用他的inflate()方法来创建Menu。inflate方法需要接收两个参数,第一个参数是让我们指定它使用哪个资源文件进行menu的创建,这里我们指定上面创建的main.xml文件,第二个参数则用于指定我们的菜单项将添加到哪个menu对象中,这里直接使用传进来的menu对象。最后该方法的返回值表示是否允许该菜单显示出来,返回true则为显示菜单。

5、目前还只是将菜单显示了出来,这时候点击菜单项是没有反应的,所以我们还需要在Activity中定义菜单响应事件:在Activity中重写onOptionsItemSelected()方法。设置为点击菜单项后会弹出Toast。

onOptionsItemSelected()方法用于设置点击各个菜单项对应Activity做出什么操作。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.add_item:
            Toast.makeText(this, "You Click Add!", Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this, "You Click Remove!", Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}

大功告成!

下面看下效果

相关知识:

<item>标签常见属性:

android:id:菜单项的唯一标识

android:title:菜单中菜单项的标题

android:icon:菜单项的图标

android:showAsAction:指定菜单项的显示方式。常用的有always、ifRoom、withText和never。多个属性值可以同时使用,但是需要中间用|隔开。

属性值作用
always 菜单项一直显示在ActionBar上,而不会被收纳到overflow菜单
ifRoom如果ActionBar上空间足够的话会显示在上面,否则会被收纳到overflow菜单
withText该菜单项的图标和标题会一起显示出来
never菜单项只会显示在overflow菜单中
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值