欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開發(fā)之menu菜單

 更新時(shí)間:2015年11月03日 14:46:29   作者:q610098308  
Android系統(tǒng)里面有四種類型的菜單:options menu(選項(xiàng)菜單),context menu(上下文菜單),sub menu(子菜單),Popup menu(彈出菜單),本文給大家詳解android開發(fā)之menu菜單,感興趣的朋友一起學(xué)習(xí)吧

 Android系統(tǒng)里面有四種類型的菜單:options menu(選項(xiàng)菜單),context menu(上下文菜單),sub menu(子菜單),Popup menu(彈出菜單)。

首先說 選項(xiàng)菜單(OptionsMenu)

一、方法介紹

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

       public booleanonOptionsItemSelected(MenuItem item):選中菜單項(xiàng)后發(fā)生的動作。

       public voidonOptionsMenuClosed(Menu menu):菜單關(guān)閉后發(fā)生的動作。

       public booleanonPrepareOptionsMenu(Menu menu):選項(xiàng)菜單顯示之前onPrepareOptionsMenu方法會被調(diào)用,你可以用此方法來根據(jù)打當(dāng)時(shí)的情況調(diào)整菜單。

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

二、默認(rèn)樣式

  默認(rèn)樣式是在屏幕底部彈出一個(gè)菜單,這個(gè)菜單我們就叫他選項(xiàng)菜單OptionsMenu,一般情況下,選項(xiàng)菜單最多顯示2排每排3個(gè)菜單項(xiàng),這些菜單項(xiàng)有文字有圖標(biāo),也被稱作Icon Menus,如果多于6項(xiàng),從第六項(xiàng)開始會被隱藏,在第六項(xiàng)會出現(xiàn)一個(gè)More里,點(diǎn)擊More才出現(xiàn)第六項(xiàng)以及以后的菜單項(xiàng),這些菜單項(xiàng)也被稱作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,"設(shè)置").setIcon(R.drawable.setting); 
 menu.add(0,3,3,"設(shè)置").setIcon(R.drawable.setting); 
 menu.add(0,2,2,"下載").setIcon(R.drawable.download); 
 
} 

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

注意:

 大部分手機(jī)上邊都會有一個(gè)“MENU”鍵,在一個(gè)應(yīng)用安裝到手機(jī)上之后,可以通過“MENU”顯示該應(yīng)用關(guān)聯(lián)的菜單。

 但是,從Android 3.0開始,Android不再要求手機(jī)設(shè)備上必須提供MENU案件,雖然現(xiàn)在還有很多手機(jī)都會提供MENU按鍵,但是有一部分已經(jīng)不再提供。在這種情況下,Android推薦使用ActionBar來代替菜單。在以后的博文中我們會介紹Android對ActionBar的支持

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

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

@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)

當(dāng)用戶長按一個(gè)控件時(shí)時(shí),彈出的菜單我們稱為上下文菜單。我們經(jīng)常在Windows中用鼠標(biāo)右鍵單擊彈出的菜單就是上下文菜單。

1、重載Activity的onCreateContextMenu()方法,調(diào)用Menu的add方法添加菜單項(xiàng)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()方法,響應(yīng)菜單單擊事件

@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) 

子菜單就是將相同功能的分組進(jìn)行多級顯示的一種菜單,比如,Windows的“文件”菜單中就有“新建”,“打開”,“關(guān)閉”等子菜單。

     創(chuàng)建子菜單的方法

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

2、調(diào)用SubMenu的add()飯飯,添加子菜單項(xiàng)

@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)方法為捕捉菜單項(xiàng)事件

這個(gè)方法有一個(gè)MenuItem參數(shù),可以使用其getTitle和getItemId方法來判斷單擊的是哪個(gè)菜單項(xiàng)

public boolean onOptionsItemSelected(MenuItem item) { 
 // TODO Auto-generated method stub 
 if(item.getTitle().equals("登錄")) 
 { 
  Log.e("action:","點(diǎn)擊了 注冊/登錄"); 
 } 
 return super.onOptionsItemSelected(item); 
} 

 SubMenu是Menu的子接口,添加SubMenu后,可以通過SubMenu.add方法添加其子菜單項(xiàng)。在子菜單項(xiàng)上不能顯示圖像,但可以在子菜單的頭部顯示圖像,不過子菜單項(xiàng)可以帶復(fù)選框和選項(xiàng)按鈕。

注意:子菜單不能再增加子菜單;

彈出菜單(Popup)

   該類菜單需要和某個(gè)View綁定,當(dāng)點(diǎn)擊該View時(shí)在該View的上面或下面(視屏幕空間而定)彈出菜單。

使用方法:

1、建立XML菜單資源文件;

popup.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
 <item 
  android:id="@+id/action_edit" 
  android:orderInCategory="100" 
  android:showAsAction="never" 
  android:title="edit"/> 
  <item 
  android:id="@+id/action_share" 
  android:orderInCategory="100" 
  android:showAsAction="never" 
  android:title="popup"/> 
</menu> 

2~5步均可在綁定View的點(diǎn)擊事件中實(shí)現(xiàn)!

2、建立PopupMenu對象,實(shí)例化傳入上下文context和綁定的View;

3、使用PopupMenu對象的getMenuInflater().inflate()把XML菜單文件壓進(jìn)來,

4、使用PopupMenu對象自身的setOnMenuItemClickListener設(shè)置點(diǎn)擊事件;

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(); 
 
} 

以上內(nèi)容就是小編給大家介紹的Android開發(fā)之menu菜單,希望大家喜歡。

相關(guān)文章

最新評論