天天看點

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;
			}
		}
	};
           
Android程式設計 - Option Menu選項菜單&& Context Menu上下文菜單基本使用

//在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);
	}
           
Android程式設計 - Option Menu選項菜單&& Context Menu上下文菜單基本使用

繼續閱讀