如何添加菜单--menu的使用


title: menu的使用
date: 2019-08-23 10:37:08
tags: android


如何添加菜单--menu的使用

menu的效果大概是下面这样:

加了menu之后在应用的右上角就会出现三个小圆点
点开之后的菜单

创建menu

Android Studio没有给我们自动创建menu资源文件,我们得自己创建。

首先在res文件夹新建一个名为menu的文件夹,接着在这个文件夹下新建一个menu资源文件,名字随便取,这里取main。

然后在 main.xml 里添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_item"
        android:title="@string/main_menu_add_item"/>
    <item
        android:id="@+id/remove_item"
        android:title="@string/main_menu_remove_item"/>
</menu>

每个item对应着菜单中的一项,id:唯一标识符,title:选项上面的文字。

然后在MainActivity中重写onCreateOptionsMenu(Menu menu)方法。

@Override
    public boolean onCreateOptionsMenu(Menu menu){
        Log.i(TAG, "onCreateOptionsMenu: start");
        getMenuInflater().inflate(R.menu.main, menu); // 将main填充到MainActivity里
        return true; // 返回true 表示允许创建的菜单显示出来;返回false,创建的菜单将无法显示
    }

值得注意的是,这个方法在应用刚开始的时候就调用了,在onCreate()方法之后调用

为每个item设置功能

item的功能需要在Activity.onOptionsItemSelected(MenuItem item)中实现,为此我们要重写该方法。

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

这个方法,只有在你点击了菜单中某一项的时候才会调用

参考书

《第一行代码 Andriod》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容