新建一个菜单文档

首先需要在项目下的res目录新建一个mune的文件夹(用来存放菜单xml文件)
然后新建一个XXX.xml菜单界面描述文件

<?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" />  
</menu>

这里新建了两个菜单项,其中标签就是用来创建具体的某一个菜单项,然后通过android:id给这个菜单项指定一个唯一的标识符,通过title来给它指定一个名称

引用菜单

接下来我们要给活动添加这个mune文件,而引用菜单文件需要用到一个方法,就是:

onCreateOptionsMenu(Menu menu)

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflater(R.menu.menu1, menu);//调用第二步中定义的Menu界面描述文件
        return true;
    }

通过这个方法可以得到MenuInflater对象,再调用它的inflater()方法就可以给当前活动创建菜单了。
inflater()接受两个参数,第一个指的是我们通过哪一个资源文件来创建菜单,这里就传入我们刚刚创建的菜单文件,第二个参数用于指定我们的菜单项将添加到哪一个Menu对象中
由于onCreateOptionsMenu是一个boolean,我们只要给这个方法返回一个ture就可以显示菜单了

菜单响应

菜单做出来之后,肯定是要拿来用的,不然拿来看啊
因此我们还需要定义菜单的响应时间,可以通过一个方法来实现:

onOptionsItemSelected

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){//判断刚刚我们写的ID值
            case R.id.menu1:
                Toast.makeText(this,"You clicked menu1",Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu2:
                Toast.makeText(this,"You clicked menu2",Toast.LENGTH_SHORT).show();
                break;
            default;
        }
        return true;//也是boolean所以要给予一个返回值
    }

接下来就完成了


一只蠢莫