Android编程 - Option Menu选项菜单&& Context Menu上下文菜单基本使用

我发现我在学习每一个Android界面控件的时候花的时间都比较多,因为是初学,可能学习方法和方式还有待改进。

本篇记录选项菜单和上下文菜单的基本实现和用法。

选项菜单即按下手机硬按键MENU键弹出的底部菜单,最多同时显示6个小项目,更多将显示为MORE..点击到子菜单


//添加菜单项

@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		mainmenu = menu;
		mainmenu.add(0, 1, Menu.NONE, "菜单1").setIcon(R.drawable.icon);
		mainmenu.add(0, 2, Menu.NONE, "菜单2");
		mainmenu.add(0, 3, Menu.NONE, "菜单3");
		mainmenu.add(1, 4, Menu.NONE, "菜单4");
		mainmenu.add(1, 5, Menu.NONE, "菜单5");
		mainmenu.add(1, 6, Menu.NONE, "菜单6");
		// add的第一个参数是group号,可制订点击按钮对某组全体控制隐藏显示
				
		return super.onCreateOptionsMenu(menu);
	}


//实现菜单行为

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		setTitle(item.getItemId() + item.getTitle().toString());
		return super.onOptionsItemSelected(item);
	}

//隐藏某群组菜单函数,写在一个按钮的监听函数中

	private OnClickListener TOGGLE_LISTEN = new OnClickListener() {
		public void onClick(View v) {
			if (mIsGroupVisible == true) {
				mainmenu.setGroupVisible(1, false);//隐藏组号1的菜单群
				mIsGroupVisible = false;
			} else {
				mainmenu.setGroupVisible(1, true);
				mIsGroupVisible = true;
			}
		}
	};




//在onCreat函数中注册要接受长按响应上下文菜单

//为两个文本框注册上下文菜单
        this.registerForContextMenu(findViewById(R.id.longan2));
        this.registerForContextMenu(findViewById(R.id.longan));

//添加长按菜单项

@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// TODO Auto-generated method stub
		switch(v.getId()){
		case R.id.longan:
			//if(menu.hasVisibleItems())return;
			menu.add(2, 11, Menu.NONE, "菜单1");
			SubMenu master = menu.addSubMenu(4, 41, 1, "Master..");//SubMenu是子菜单,有且只有一层,可以接受点击
			master.add("wt1");
			master.add("wt2");
			master.add("wt3");
			
			menu.add(2, 12, Menu.NONE, "菜单2");
			menu.add(2, 13, Menu.NONE, "菜单3");
			menu.add(2, 14, Menu.NONE, "菜单4");
			break;
		case R.id.longan2:
			menu.add(3, 21, Menu.NONE, "菜单21");
			menu.add(3, 22, Menu.NONE, "菜单22");
			break;
		}
		super.onCreateContextMenu(menu, v, menuInfo);
	}


//菜单响应函数,与前面option menu类似
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		setTitle(item.getTitle());
		return super.onContextItemSelected(item);
	}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值