Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android menu 開發

android menu 開發

編輯:關於Android編程

menu 分類:

選項菜單(OptionsMenu) 上下文菜單(ContextMenu) 子菜單(SubMenu)
彈出菜單(Popup


首先說 選項菜單(OptionsMenu)

一、方法介紹:

public booleanonCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu 。

public booleanonOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。

public voidonOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。

public booleanonPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。

public booleanonMenuOpened(int featureId, Menu menu):單打開後發生的動作。

  二、默認樣式

  默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More裡,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。

1.重載onCreateOptionsMenu(Menu menu)方法
	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		//getMenuInflater().inflate(R.menu.main, menu);
		menu.add(0,1,1,設置).setIcon(R.drawable.setting);
		menu.add(0,3,3,設置).setIcon(R.drawable.setting);
		menu.add(0,2,2,下載).setIcon(R.drawable.download);
 
	}

重載onCreateOptionsMenu(Menu menu)方法,並在此方法中添加菜單項,最後返回true,如果false,菜單則不會顯示。

注意:
大部分手機上邊都會有一個“MENU”鍵,在一個應用安裝到手機上之後,可以通過“MENU”顯示該應用關聯的菜單。 但是,從Android 3.0開始,Android不再要求手機設備上必須提供MENU案件,雖然現在還有很多手機都會提供MENU按鍵,但是有一部分已經不再提供。在這種情況下,Android推薦使用ActionBar來代替菜單。在以後的博文中我們會介紹Android對ActionBar的支持

4.2上的optionsMenu是放到actionbar上面了,必須要在xml文件中設置showAsAction=always活著showAsAction=ifRoom才能在actionbar上顯示。只有在actionBar上顯示的菜單,才會有圖標。要在代碼中設置的話,menu.findItem(id).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)



2.重載onOptionsItemSelected(MenuItem item)方法為捕捉菜單項事件

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// TODO Auto-generated method stub
		if (item.getGroupId() == 0 &&item.getItemId() == 1)
		{
			Intent intent = new Intent(this, SecondActivity.class);
			startActivity(intent);
		}
		else
		{
			Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
		}
		return super.onOptionsItemSelected(item);
	}


上下文菜單(ContextMenu)
當用戶長按一個控件時時,彈出的菜單我們稱為上下文菜單。我們經常在Windows中用鼠標右鍵單擊彈出的菜單就是上下文菜單。

1、重載Activity的onCreateContextMenu()方法,調用Menu的add方法添加菜單項MenuItem

 

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo)
	{
		  menu.add(0, 1, 0, 紅色背景);  
		  menu.add(0, 2, 0, 綠色背景);  
		  menu.add(1, 3, 0, 白色背景);  
		// TODO Auto-generated method stub
		super.onCreateContextMenu(menu, v, menuInfo);
	}


 

2、重載onContextItemSelected()方法,響應菜單單擊事件

 

	@Override
	public boolean onContextItemSelected(MenuItem item)
	{
		// TODO Auto-generated method stub
		  switch(item.getItemId()) {  
			  case 1:  
				  myText.setBackgroundColor(Color.RED);  
			   break;  
			  case 2:  
				  myText.setBackgroundColor(Color.GREEN);  
			   break;  
			  case 3:  
				  myText.setBackgroundColor(Color.WHITE);  
			   break;  
			  } 
		return true;
	}


 

3、重載registerForContextMenu()方法,為視圖注冊上下文菜單

    private TextView myText;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myText = (TextView)findViewById(R.id.mytext);
		registerForContextMenu(myText);  
	}
子菜單(SubMenu)
子菜單就是將相同功能的分組進行多級顯示的一種菜單,比如,Windows的“文件”菜單中就有“新建”,“打開”,“關閉”等子菜單。

創建子菜單的方法

1、重載Activity的onCreateOptionsMenu()方法,調用Menu的addSubMenu()方法添加子菜單項

2、調用SubMenu的add()飯飯,添加子菜單項

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.

		SubMenu subMenu = menu.addSubMenu(0, 4, 4, 登錄/注冊);
		subMenu.add(1, 1, 1, 登錄);
		subMenu.add(1, 2, 2, 注冊);
		return true;
	}

 

 

3、重載onOptionsItemSelected(MenuItem item)方法為捕捉菜單項事件

這個方法有一個MenuItem參數,可以使用其getTitle和getItemId方法來判斷單擊的是哪個菜單項
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		if(item.getTitle().equals(登錄))
		{
			Log.e(action:,點擊了 注冊/登錄);
		}
		return super.onOptionsItemSelected(item);
	}


SubMenu是Menu的子接口,添加SubMenu後,可以通過SubMenu.add方法添加其子菜單項。在子菜單項上不能顯示圖像,但可以在子菜單的頭部顯示圖像,不過子菜單項可以帶復選框和選項按鈕。
注意:子菜單不能再增加子菜單;

彈出菜單(Popup
該類菜單需要和某個View綁定,當點擊該View時在該View的上面或下面(視屏幕空間而定)彈出菜單。 使用方法: 1、建立XML菜單資源文件;
popup.xml


	  


2~5步均可在綁定View的點擊事件中實現! 2、建立PopupMenu對象,實例化傳入上下文context和綁定的View; 3、使用PopupMenu對象的getMenuInflater().inflate()把XML菜單文件壓進來, 4、使用PopupMenu對象自身的setOnMenuItemClickListener設置點擊事件; 5、使用PopupMenu對象自身的show顯示彈出菜單。
	public void showPopuMenu(View v)
	{
		PopupMenu popup = new PopupMenu(MainActivity.this, v);
	    MenuInflater inflater = popup.getMenuInflater();
	    inflater.inflate(R.menu.popup, popup.getMenu());
	    popup.show();

	}

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved