OptionsMenu菜单 和 SubMenu创建子菜单

创建选项菜单并设置菜单项(重写):onCreateOptionsMenu()

        1.设置菜单项可用代码动态设置 menuadd()

                      2.还可以通过xml设置getMenuInflateri().infalte();

设置菜单项点击事件:onOptionsItemSelected()

一、通过xml添加

orderInCategory:排序的序号

showAsAction:默认是否显示 never:默认不显示

title:标题

menu   main.xml

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

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/action_add"
        android:orderInCategory="101"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

</menu><pre name="code" class="java">//创建菜单
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	//监听菜单项点击事件
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		//item 当前点击项
		//通过菜单项id(getItemId)判断
		switch (item.getItemId()) {
		case R.id.action_settings:
			Toast.makeText(MainActivity.this, "点击了菜单1", Toast.LENGTH_LONG).show();
			break;
		case R.id.action_add:
			Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG).show();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

 
 
二、动态添加菜单项 

//创建菜单
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		//分组id,项id,排序,名称
		MenuItem item=menu.add(1,100,1,"菜单1");
		//重新设置标题
		item.setTitle("aaa");
		//图标不一定显示 api>=11 不显示图标
		item.setIcon(R.drawable.ic_launcher);
		
		menu.add(1,101,2,"菜单2");
		menu.add(1,102,3,"菜单3");
		menu.add(1,103,4,"菜单4");
		menu.add(1,104,5,"菜单5");
		menu.add(1,105,6,"菜单6");
		return true;
	}

	//监听菜单项点击事件
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		//item 当前点击项
		//通过菜单项id(getItemId)判断
		switch (item.getItemId()) {
		case 100:
			Intent intent=new Intent(MainActivity.this,SecondActivity.class);
			//点击后的意图
			item.setIntent(intent);
			break;
		case 101:
			Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG).show();
			break;
		case 102:
			Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG).show();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

??点击后调转至页面

 

Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//点击后的意图
item.setIntent(intent);
//分组id,项id,排序,名称
MenuItem item=menu.add(1,100,1,"菜单1");
//重新设置标题
item.setTitle("aaa");
//图标不一定显示 api>=11 不显示图标
item.setIcon(R.drawable.ic_launcher);

 

SubMenu菜单

使用代码添加

//创建菜单SubMenu
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// 分组id,项id,排序,名称
		// 创建子菜单
		SubMenu flie = menu.addSubMenu("文件");
		SubMenu edit = menu.addSubMenu("编辑");
		// 为子菜单添加菜单项
		flie.add(1, 1, 1, "打开");
		flie.add(1, 2, 1, "新建");
		flie.add(1, 3, 1, "保存");
		flie.setHeaderTitle("文件操作");
		flie.setHeaderIcon(R.drawable.ic_launcher);
		edit.add(2, 1, 1, "复制");
		edit.add(2, 2, 1, "粘贴");
		edit.add(2, 3, 1, "删除");

		edit.setHeaderTitle("编辑操作");
		edit.setHeaderIcon(R.drawable.ic_launcher);
		return true;
	}

	// 监听菜单项点击事件
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// item 当前点击项
		// 通过菜单项id(getItemId)判断
		if (item.getGroupId() == 1) {
			switch (item.getItemId()) {
			case 1:
				Toast.makeText(MainActivity.this, "点击了打开", Toast.LENGTH_LONG)
						.show();
				break;
			case 2:
				Toast.makeText(MainActivity.this, "点击了新建", Toast.LENGTH_LONG)
						.show();
				break;
			case 3:
				Toast.makeText(MainActivity.this, "点击了保存", Toast.LENGTH_LONG)
						.show();
				break;
			}
		} else if (item.getGroupId() == 2) {
			switch (item.getItemId()) {
			case 1:
				Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG)
						.show();
				break;
			case 2:
				Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG)
						.show();
				break;
			case 3:
				Toast.makeText(MainActivity.this, "点击了菜单2", Toast.LENGTH_LONG)
						.show();
				break;
			}
		}

		return super.onOptionsItemSelected(item);
	}
2.通过xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:showAsAction="never"
        android:title="文件">
        <menu>
            <item android:id="@+id/newfile"/>
            <item android:id="@+id/newopen"/>
            <item android:id="@+id/newdel"/>
        </menu>
    </item>
    <item
        android:showAsAction="never"
        android:title="编辑">
        <menu>
            <item android:id="@+id/editfile"/>
            <item android:id="@+id/editopen"/>
            <item android:id="@+id/editdel"/>
        </menu>
    </item>

</menu>
@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater=getMenuInflater();
		inflater.inflate(R.menu.main, menu);
		return true;
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值