Android菜单Menu的简单使用

30 篇文章 0 订阅

首先了解什么是菜单

由于Android手机屏幕的有限,当如果有许多按钮或者导航选项时,分布在界面上十分的不美观,就如图桌面上散乱的放置了很多杂物,因此可以提供一个类似抽屉的东西,负责存放和整理这些按钮。

如图所示便是微信的Menu,点开这个按钮后,会出现一排更具体的按钮。

                                      

那么如何实现一个Menu呢?

首先需要创建一个menu的文件夹,在res文件目录下创建名为“menu”的文件夹,然后右键选择文件夹new-》Menu resource file ,然后添加如下代码。每一个item都是一个选项,id唯一标识该选项,title用于显示选项的文字内容。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu1"
        android:title="选项1"/>
    <item
        android:id="@+id/menu2"
        android:title="选项2"/>
    <item
        android:id="@+id/menu3"
        android:title="选项3"/>
    <item
        android:id="@+id/menu4"
        android:title="选项4"/>
    <item
        android:id="@+id/menu5"
        android:title="选项5"/>
</menu>

布局文件创建完后,接下来就在需要使用的Activity中书写显示的代码。

首先需要重写onCreateOptionsMenu这个方法,这个方法用于显示Menu。如下代码所示。

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

       完成后运行虚拟机,首先可以看到标题栏上出现了竖直排列的三个白点,这个就是Menu。

                                      

然后点击menu,可以看到前面所编写的item就出现在屏幕上。

                             

点击时,可以发现没有反应,这是因为目前只实现了显示的部分,响应还需要再重写onOptionsItemSelected方法,如下面代码所示。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menu1:
                Toast.makeText(this,"点击了第"+1+"个",Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu2:
                Toast.makeText(this,"点击了第"+2+"个",Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu3:
                Toast.makeText(this,"点击了第"+3+"个",Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu4:
                Toast.makeText(this,"点击了第"+4+"个",Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu5:
                Toast.makeText(this,"点击了第"+5+"个",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }

最终运行效果如图所示。

                     

此外还能如微信Menu一样,在文字内容前添加图标已达到美观的效果。只需要在布局文件中,给对应的item添加android:icon这个属性,指向所需要的图标即可。

对应更多的自定义化内容,由于只是本文只是简单使用,所以不做更多的描述,可以自行探索

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值