Android学习整理-菜单Menu




1.常见菜单类型:

2.简单用法:

A.OptionsMenu


Ps:我之前从网上看到的都是说OptionsMenu一次只能显示6个,超过的话会自动显示更多.但是我发现android4.0.3貌似没有这个限制,起码我的机器到60个都是显示下拉状态.



  用法:在需要用到菜单的Activity加入以下两个函数就可以了,到时候当你按下手机的菜单键便会自动调用,这个是挺好的~~


@Override
	public boolean onCreateOptionsMenu(Menu menu) {//这个是初始化菜单,只执行一次哈,如果要动态更改的话,需要在其他函数写,然后在适当的时候调用
		int group1 = 1;
		menu.add(group1, 1, 1, "开始");
//		SubMenu subMenu = menu.addSubMenu(group1, 2, 2, "子菜单");
//		subMenu.add(group1, 4, 1, "1");
//		subMenu.add(group1, 5, 2, "22222");
		menu.add(group1, 2,2, "设置");//第一个参数是指明是哪个组,第二个是该菜单项的特定ID,第三个是该菜单项在菜单中的显示顺序,第四个就是在菜单中显示的标题
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {//这个相当于监听器,就是当按了其中的菜单项就会调用这个函数,如果有多个菜单组,建议在此再加上菜单组的判断
		// TODO 自动生成的方法存根
		switch (item.getItemId()) {//这个就是那个上面说的那个菜单项的特定ID了,所以要注意上面设定ID的时候不要重复了,不然就...
		case 1:
			Msg.show(MainActivity.this, "开始");
			break;
		case 2:
			Msg.show(MainActivity.this, "设置");
			break;
		default:
			Msg.show(MainActivity.this, item.getTitle().toString());
		}
		return super.onOptionsItemSelected(item);
	}





B.SubMenu


@Override
	public boolean onCreateOptionsMenu(Menu menu) {//这个是初始化菜单,只执行一次哈,如果要动态更改的话,需要在其他函数写,然后在适当的时候调用
		int group1 = 1;
		menu.add(group1, 1, 1, "开始");
		SubMenu subMenu = menu.addSubMenu(group1, 2, 2, "子菜单");
		subMenu.add(group1, 4, 1, "1");
		subMenu.add(group1, 5, 2, "22222");//注意不要把ID和其他的相同
		menu.add(group1, 2,2, "设置");//第一个参数是指明是哪个组,第二个是该菜单项的特定ID,第三个是该菜单项在菜单中的显示顺序,第四个就是在菜单中显示的标题
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {//这个相当于监听器,就是当按了其中的菜单项就会调用这个函数,如果有多个菜单组,建议在此再加上菜单组的判断
		// TODO 自动生成的方法存根
		switch (item.getItemId()) {//这个就是那个上面说的那个菜单项的特定ID了,所以要注意上面设定ID的时候不要重复了,不然就...
		case 1:
			Msg.show(MainActivity.this, "开始");
			break;
		case 2:
			Msg.show(MainActivity.this, "设置");
			break;
		default:
			Msg.show(MainActivity.this, item.getTitle().toString());
		}
		return super.onOptionsItemSelected(item);
	}