欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android menu的简单使用

程序员文章站 2022-07-14 17:43:31
...

menu是Android自带的一个菜单栏功能,在添加之后他会出现在标题栏中。

部分参考《第一行代码》

使用的步骤如下:

1:在你的res目录下找到一个叫menu的文件夹(没有的话就创建一个),之后在里面创建一个xml文件(这个就是我们要用到的资源文件)。

2:在文件中添加代码(先上代码再解释)。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/m-11"
        android:title="1-1"
        android:icon="@mipmap/ic_launcher" />
    <item android:id="@+id/m-12"
        android:title="1-2"
        android:icon="@drawable/ic_launcher_foreground"/>
    <item android:id="@+id/m-13"
        android:title="1-3"
        android:icon="@drawable/ic_launcher_foreground"/>
    <item android:id="@+id/more"
        android:title="更多">
        <menu>
            <item android:id="@+id/m-21"
                android:title="2-1" />
            <item android:id="@+id/m-22"
                android:title="2-2"/>
            <item android:id="@+id/m-23"
                android:title="2-3"/>
            <item android:id="@+id/m-2-more"
                android:title="更多2">
                <menu>
                    <item
                        android:id="@+id/m-31"
                        android:title="3-1"/>
                    <item
                        android:id="@+id/m-32"
                        android:title="3-2"/>
                </menu>
            </item>
        </menu>
    </item>
</menu>

这里的<item>标签用来创建一个菜单选项,<menu>标签用来创建一个菜单并且这里的菜单可以通过如图的方式实现嵌套,产生二级和三级菜单。item中的属性就不加赘述了。

但是其中有一个showAsAction他最主要的属性有三个:always,never,ifRoom。代表在何时会把这一选项直接显示在标题栏上(只在一级菜单的时候才有意义),分别是:总是显示在标题栏上,从不显示和如果有空间的话显示。

3:接下来就是如何在activity中使用了,打开对应的activity重写他的 onCreateOptionsMenu 方法:

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

通过  getMenuInflater().inflate() 方法来获取菜单,方法中的两个参数分别是我们之前创建的资源文件(R.menu.文件名)和要在哪一个menu对象中显示(这里直接填menu),return ture 表示允许显示,如果是false的话就不会显示。这样就可以在对应的activity中看到了,但是现在只是一个摆设,点击之后是没有任何作用的。

Android menu的简单使用

4:接下来就是有效化我们的点击。同样是在我们的Activity中,重写 onOptionsItemSelected()方法。

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.m11:
                Toast.makeText(this,"you click m11",Toast.LENGTH_SHORT).show();
                break;
            case R.id.m12:
                Toast.makeText(this,"you click m22",Toast.LENGTH_SHORT).show();
                break;
            default:
                Toast.makeText(this,"don't know what are you clicked ",Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }

这一方法中传入的可以通过传入的item来确定点击的是哪一个item之后来添加代码完成对应的操作。

结束。


新手上路,如有错误,欢迎指正。