Menu创建的方式

Menu创建的方式:
1、通过xml定义
2、通过java定义
3、效果
【方式1更好】
xml定义menu的优势:
1、清晰的菜单结构
2、将菜单内容与应用的逻辑代码分离
3、资源适配更容易

【以下以OptionMenu为例】
一、通过xml资源来设计menu
1、xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    
     <item android:title="保存"
         android:id="@+id/save"
         android:icon="@mipmap/ic_launcher"
         app:showAsAction="always"/>

        <item android:title="设置"
            android:id="@+id/setting"/>

        <item android:title="更多操作" >
            <menu >
                <item android:title="退出"
                    android:id="@+id/exit"/>
                <item android:title="子菜单2" />
                <item android:title="子菜单3" />
            </menu>
        </item>
</menu>

2、相应的java代码

//创建OptionsMenu
 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //将菜单资源加载到当前的菜单中
        //1、通过xml资源来设计menu
   		getMenuInflater().inflate(R.menu.option,menu);
        return true;
    }
//OptionsMenu菜单项的选中方法
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()){
             
            //配合xml方式设计menu
            case R.id.save:
                Toast.makeText(this,"保存",Toast.LENGTH_SHORT).show();
                break;
            case R.id.setting:
                Toast.makeText(this,"设置",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exit:
                finish();
                break;
           
        }
	return super.onOptionsItemSelected(item);
    }

二、纯java代码设计menu

//创建OptionsMenu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      
        //2、纯java代码设计menu
        /*
        设置
        更多
            添加
            删除
         */
//        Menu
        //参数1:组id   参数2:菜单项id   参数3:序号  参数4:设置
        menu.add(1,1,1,"设置");
        SubMenu sub=menu.addSubMenu(1,2,2,"更多");
//        SubMenu 子菜单
        sub.add(2,3,1,"添加");
        sub.add(2,4,2,"删除");

        return true;
    }

 //OptionsMenu菜单项的选中方法
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()){
	         case 1:
	                Toast.makeText(this,"设置",Toast.LENGTH_SHORT).show();
	                break;
	            case 2:
	                Toast.makeText(this,"更多",Toast.LENGTH_SHORT).show();
	                break;
	            case 3:
	                Toast.makeText(this,"添加",Toast.LENGTH_SHORT).show();
	                break;
	            case 4:
	                Toast.makeText(this,"删除",Toast.LENGTH_SHORT).show();
	                break;
        }
        
        return super.onOptionsItemSelected(item);
    }

三、效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了34 篇原创文章 · 获赞 5 · 访问量 7491

猜你喜欢

转载自blog.csdn.net/qq_39438055/article/details/104105187