亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android開發之menu菜單

2020-04-11 11:19:12
字體:
來源:轉載
供稿:網友

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

首先說 選項菜單(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方法來判斷單擊的是哪個菜單項

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

<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的點擊事件中實現!

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

以上內容就是小編給大家介紹的Android開發之menu菜單,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最新av在线网站| 动漫精品一区二区| 全亚洲最色的网站在线观看| 成人羞羞国产免费| 欧美日韩在线视频一区二区| 日韩免费在线观看视频| 另类色图亚洲色图| 麻豆精品精华液| 久久久久久久999精品视频| 久久国产精品免费视频| 国产一区二区三区高清在线观看| 一区国产精品视频| 国产在线一区二区三区| 成人福利视频在线观看| 国产精品专区一| 亚洲社区在线观看| 日本三级久久久| 日韩中文字幕免费| 欧美一级视频在线观看| 亚洲在线第一页| 日韩成人在线网站| 自拍偷拍亚洲在线| 欧美黄色小视频| 高潮白浆女日韩av免费看| 国产又爽又黄的激情精品视频| 国产成人啪精品视频免费网| 国产精品2018| 在线观看欧美视频| 久久久亚洲成人| 欧美肥臀大乳一区二区免费视频| 成人国产在线激情| 日韩精品视频三区| 国产精自产拍久久久久久| 欧美精品日韩三级| 永久免费毛片在线播放不卡| 日韩天堂在线视频| 国产日韩视频在线观看| 欧美性猛交xxx| 亚洲美女www午夜| 91精品视频在线看| 91国自产精品中文字幕亚洲| 久久亚洲精品网站| 亚洲国产一区自拍| 欧美精品999| 国产一区二区三区日韩欧美| 国产精品久久久久久av下载红粉| 91国在线精品国内播放| 日韩国产欧美精品在线| 91久久精品久久国产性色也91| 97免费视频在线播放| 欧美性在线视频| 国产精品1234| 久久久久久亚洲精品不卡| 欧日韩在线观看| 久久亚洲私人国产精品va| 亚洲天堂男人天堂| 国产精品三级久久久久久电影| 亚洲一区二区久久久久久久| 久久人人爽人人爽人人片av高请| 26uuu亚洲伊人春色| 日韩电视剧在线观看免费网站| 欧洲午夜精品久久久| 欧美日韩在线视频观看| 都市激情亚洲色图| 欧美性xxxxx| 狠狠爱在线视频一区| 日韩a**中文字幕| 欧美日韩午夜激情| 992tv在线成人免费观看| 国产日韩在线视频| 18性欧美xxxⅹ性满足| 久久精品国产电影| 992tv在线成人免费观看| 成人黄色免费片| 国产成人啪精品视频免费网| 一本大道香蕉久在线播放29| zzjj国产精品一区二区| 尤物九九久久国产精品的特点| 亚洲春色另类小说| 亚洲另类图片色| 国产美女扒开尿口久久久| 国产主播喷水一区二区| 欧美性xxxxxxx| 欧美成人午夜激情在线| 色视频www在线播放国产成人| 91精品国产乱码久久久久久蜜臀| 91av视频在线观看| 国产精品第一第二| 日产日韩在线亚洲欧美| www.亚洲一二| 68精品国产免费久久久久久婷婷| 欧美国产在线视频| 久久久噜噜噜久久中文字免| 在线a欧美视频| 亚洲精品美女久久| 国产成人免费av电影| 成人免费xxxxx在线观看| 乱亲女秽乱长久久久| 久久久久久国产免费| 亚洲欧美国产另类| 2018国产精品视频| 国产91亚洲精品| 久久av中文字幕| 97在线免费观看| 91亚洲精品在线| 日韩在线高清视频| 欧美放荡办公室videos4k| 久久久久久久电影一区| 国产亚洲精品久久久久久777| 精品国模在线视频| 欧美成在线视频| 国产一区二区免费| 91国内产香蕉| 国产亚洲精品久久久久久牛牛| 欧美成人精品在线视频| 中文字幕日韩在线播放| 国产精品无av码在线观看| 亚洲三级黄色在线观看| 国产一区二区三区日韩欧美| 国产精品免费久久久久久| 97色伦亚洲国产| 精品久久久久久久久久久久| 亚洲人成绝费网站色www| 538国产精品一区二区免费视频| 欧美视频在线观看 亚洲欧| 欧美成年人在线观看| 国产精品久久久久aaaa九色| 精品人伦一区二区三区蜜桃网站| 欧美最近摘花xxxx摘花| 色偷偷88888欧美精品久久久| 欧美一区二区三区精品电影| 亚洲免费视频观看| 97久久精品视频| 亚洲图片制服诱惑| 亚洲精品短视频| wwwwwwww亚洲| 麻豆精品精华液| 欧美黑人性视频| 欧美专区日韩视频| 国产又爽又黄的激情精品视频| 国产精品久久久久久久久粉嫩av| 亚洲黄色www| 欧美性猛交xxxx乱大交蜜桃| 国产成人拍精品视频午夜网站| 美女国内精品自产拍在线播放| 国产精品毛片a∨一区二区三区|国| 91av在线精品| 一区二区福利视频| 欧美电影免费观看电视剧大全| 久久久久久999| 久久精品青青大伊人av| 欧美乱大交做爰xxxⅹ性3| 精品久久久久久中文字幕| 91人人爽人人爽人人精88v| 美女撒尿一区二区三区| 91免费欧美精品| 久久精品视频中文字幕| 国产精品爱久久久久久久| 亚洲精品国产欧美| 美女黄色丝袜一区| 91欧美精品成人综合在线观看| 亚洲性视频网址| 一个人看的www欧美| 久久久女人电视剧免费播放下载|