韩国三级高清手机在线版-韩国三级电影久久-韩国三级hd中文字幕一男多女-韩国三级hd中文字幕久久精品-日本精品在线视频-日本精品在线观看视频

理解Android的菜單

 

  1. 選項菜單:最常規的菜單,android中把它叫做option menu

  2. 子菜單:android中點擊子菜單將彈出懸浮窗口顯示子菜單項。子菜單不支持嵌套,即子菜單中不能再包括其他子菜單。

  3. 上下文菜單:android中長按視圖控件后出現的菜單,windows點擊右鍵彈出的菜單即上下文菜單

  4. 圖標菜單:這個比較簡單,就是帶icon的菜單項,需要注意的是子菜單項、上下文菜單項、擴展菜單項均無法顯示圖標

  5. 選擇菜單(alternative menu):用的比較少,以后單獨介紹,本文先跳過(其實是我還沒弄明白啦o(≧v≦)o~~)

  6. 擴展菜單:選項菜單最多只能顯示6個菜單項,超過6個時,第6個菜單項會被系統替換為一個叫“更多”的子菜單,原來顯示不下的菜單項都

為“更多”菜單的子菜單項。如下圖作 

 

       

 

 

每個 activity包含一個菜單,一個菜單又能包含多個菜單項和多個子菜單,子菜單其實也是菜單(因為它實現了Menu接口),因此子菜單也可以包含多個菜 單項。OnCreateOptionsMenu()和OnOptionsMenuSelected()是activity中提供了兩個回調方法,用于創建 菜單項和響應菜單項的點擊

 

1,創建options menu  選項菜單

[java] view plaincopy

  1. @Override  

  2.     public boolean onCreateOptionsMenu(Menu menu) {  

  3.         //為了兼容以后的版本  

  4.         super.onCreateOptionsMenu(menu);  

  5.           

  6.         //多種方式添加菜單項  

  7.           

  8.         //menu.add("菜單項1");//1,直接指定標題,這個響應的時候我不知道怎么調用  

  9.         //menu.add(R.string.menuitem2);//2,通過資源指定標題  

  10.           

  11.         menu.add(1, Menu.FIRST, 1"菜單項1");//3,顯式指定菜單項的組號,ID , 排序,標題  

  12.         menu.add(1, Menu.FIRST+12"菜單項2");  

  13.         menu.add(2, Menu.FIRST+23"菜單項3");  

  14.         menu.add(2, Menu.FIRST+34"菜單項4");  

  15.         menu.add(2, Menu.FIRST+45"菜單項5");  

  16.         menu.add(2, Menu.FIRST+56"菜單項6");//多于6個將會被系統以更多字樣替換  

  17.         menu.add(2, Menu.FIRST+67"菜單項7");  

  18.         menu.add(2, Menu.FIRST+78"菜單項8");  

[java] view plaincopy

  1. return true;//如果希望現實菜單,返回true  

響應菜單項

使用的最多方法是重寫activity類的 onOptionsItemSelected(MenuItem)回調方法,每當有菜單項被點擊時,android就會調用該方法,并傳入被點擊菜單項。

以下代碼可作為使用onOptionsItemSelected方法響應菜單的模板來使用,這里為了方便起見將菜單ID硬編碼在程序里,你可以使用常量或資源ID來使代碼更健壯

[java] view plaincopy

  1. @Override  

  2.     public boolean onOptionsItemSelected(MenuItem item) {  

  3.           

  4.         switch(item.getItemId()){  

  5.         case 1:  

  6.             //do something  

  7.             Toast.makeText(this"1", Toast.LENGTH_LONG).show();  

  8.             break;  

  9.         case 2:  

  10.             Toast.makeText(this"2", Toast.LENGTH_LONG).show();  

  11.             break;  

  12.         case 3:  

  13.             Toast.makeText(this"3", Toast.LENGTH_LONG).show();  

  14.             break;  

  15.         case 4:  

  16.             Toast.makeText(this"4", Toast.LENGTH_LONG).show();  

  17.             break;  

  18.         default:  

  19.             return super.onOptionsItemSelected(item);  

  20.         }  

  21.           

  22.         return true;  

  23.     }  

使用監聽器響應菜單項

雖然上邊方法是推薦使用的方法,android還是提供了類似java swing的監聽器方式來響應菜單。使用監聽器的方式分為兩步:

 

[java] view plaincopy

  1. //第一步:為菜單項注冊監聽器  

  2. menuItem.setOnMenuItemClickListener(new MyMenuItemClickListener());  

  3. //第二步:創建監聽器類  

  4. class MyMenuItemClickListener implements OnMenuItemClickListener {  

  5.     @Override  

  6.     publicboolean onMenuItemClick(MenuItem item) {  

  7.     switch(){  

  8.     // do something here...  

  9.     }  

  10.          

  11.     return true;    //finish handling  

  12.     }  

  13. }  


 

該方法先于onOptionsItemSelected執行

 

[java] view plaincopy

  1. <h1 style="font-family: verdana; "><a name="t4"></a>2,子菜單Sub Menu</h1><span style="font-family: verdana; ">Android支持子菜單,你可以通過addSubMenu</span><span style="font-family: verdana; ">(int groupId, int itemId, int order, int titleRes)方法非常方便的創建和響應子菜單。</span>  

 

[java] view plaincopy

  1. @Override  

  2.     public boolean onCreateOptionsMenu(Menu menu) {  

  3.         //為了兼容以后的版本  

  4.         super.onCreateOptionsMenu(menu);  

  5.                   

  6.         //添加子菜單  

  7.         //一個菜單可以有多個子菜單  

  8.                           menu.addSubMenu(1, Menu.FIRST, 1"系統設置" );  

  9.         SubMenu subMenu = menu.addSubMenu(1, Menu.FIRST+12"網絡設置" );//子菜單支持圖標  

  10.         subMenu.setIcon(R.drawable.ic_launcher);  

  11.           

  12.         MenuItem menuItem = subMenu.add(2, Menu.FIRST+2, Menu.NONE, "菜單項1");//子菜單項不支持顯示圖標  

  13.         //menuItem.setIcon(R.drawable.ic_launcher);  

  14.         subMenu.add(2, Menu.FIRST+3, Menu.NONE, "菜單項2");  

  15.         subMenu.add(2, Menu.FIRST+4, Menu.NONE, "菜單項3");  

  16.         subMenu.add(2, Menu.FIRST+5, Menu.NONE, "菜單項4");  

  17.           

  18.         return true;//如果希望現實菜單,返回true  

  19.     }  

  
 

上面的代碼演示了如何創建子菜單,其菜單項的響應其實就是普通菜單項的響應

 

 

3,圖標菜單Icon Menu

Android支持在菜單上顯示各種各樣的圖標,這一點我們在上面創建子菜單時已經用到了

[java] view plaincopy

  1. SubMenu subMenu = menu.addSubMenu(1, Menu.FIRST+12"網絡設置" );//子菜單支持圖標  

  2. subMenu.setIcon(R.drawable.ic_launcher);  

Android中并不是所謂的菜單項都能加上圖標,以下菜單項都是不可以的(這并不意味著程序會報錯,而是運行時圖標得不到顯示):

  • 擴展的菜單項。

  • 子菜單的菜單項

  • 上下文菜單的菜單項

4,ContextMenu簡介

在Windows中,我們已經習慣了在文件上單擊右鍵來執行“打開”、“重名名”、“剪切”、“刪除”等操作,這個右鍵彈出的菜單就是上下文菜單.

android是通過長按某個視圖元素來彈出上下文菜單的.

上下 文菜單與Options Menu最大的不同在于,Options Menu的擁有者是Activity,而上下文菜單的擁有者是Activity中的View。每個Activity有且只有一個Options Menu,它為整個Activity服務。而一個Activity往往有多個View,并不是每個View都有上下文菜單,這就需要我們顯示地通過

registerForContextMenu(Viewview)來指定。

 

 

下面給出一個demo演示如何創建和響應上下文菜單:

1.在activity的onCreate(...)方法中為一個view注冊上下文菜單

2.在onCreateContextMenuInfo(...)中生成上下文菜單。

3.在onContextItemSelected(...)中響應上下文菜單項。

 
 

 

[java] view plaincopy

  1. public class MenuDemoActivity extends Activity {  

  2.     private ListView listView;   

  3.     @Override  

  4.     public void onCreate(Bundle savedInstanceState) {  

  5.         super.onCreate(savedInstanceState);  

  6.         setContentView(R.layout.main);  

  7.         initView();//做一些初始化工作  

  8.     }  

  9.   

  10.     private void initView() {  

  11.         listView = (ListView) this.findViewById(R.id.listview);  

  12.         listView.setAdapter(new MyAdapter());  

  13.         this.registerForContextMenu(listView);//1 為所有列表項注冊上下文菜單,注意和響應事件不一樣  

  14.           

  15.           

  16.     }  

  17.     //給ListView提供一些數據  

  18.     private class MyAdapter extends BaseAdapter{  

  19.   

  20.         public int getCount() {  

  21.               

  22.             return 5;  

  23.         }  

  24.   

  25.         public Object getItem(int position) {  

  26.             // TODO Auto-generated method stub  

  27.             return null;  

  28.         }  

  29.   

  30.         public long getItemId(int position) {  

  31.             // TODO Auto-generated method stub  

  32.             return 0;  

  33.         }  

  34.   

  35.         public View getView(int position, View convertView, ViewGroup parent) {  

  36.             TextView tv = new TextView(MenuDemoActivity.this);  

  37.             tv.setText("文件"+position);  

  38.             return tv;  

  39.         }  

  40.           

  41.     }  

  42.       

  43.     @Override  

  44.     //2 創建上下文菜單  

  45.     public void onCreateContextMenu(ContextMenu menu, View v,  

  46.             ContextMenuInfo menuInfo) {  

  47.           

  48.         super.onCreateContextMenu(menu, v, menuInfo);  

  49.         menu.setHeaderTitle("文件操作");  

  50.         menu.add(1, Menu.FIRST, Menu.NONE, "發送");  

  51.         menu.add(1, Menu.FIRST+1, Menu.NONE, "標記為重要");  

  52.         menu.add(1, Menu.FIRST+2, Menu.NONE, "重命名");  

  53.         menu.add(1, Menu.FIRST+3, Menu.NONE, "刪除");  

  54.     }  

  55.       

  56.     @Override  

  57.     //3 響應上下文菜單  

  58.     public boolean onContextItemSelected(MenuItem item) {  

  59.         switch(item.getItemId()){  

  60.         case 1:  

  61.             Toast.makeText(this"發送"1).show();  

  62.             break;  

  63.         case 2:  

  64.             Toast.makeText(this"標記為重要"1).show();  

  65.             break;  

  66.         case 3:  

  67.             Toast.makeText(this"重命名"1).show();  

  68.             break;  

  69.         case 4:  

  70.             Toast.makeText(this"刪除"1).show();  

  71.             break;  

  72.         default:  

  73.               

  74.             return super.onContextItemSelected(item);  

  75.         }  

  76.         return true;  

  77.     }  

  78. }  

  79.       

  80.       

運行程序,多次調出上下文菜單,注意LogCat的輸出,onCreateContextMenu每一次都被調用了。

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
亚洲AV成人片无码www妖精| 777米奇第四在线观看| YW尤物AV无码| 欧美丰满熟妇XX猛交| 中国小YOUNV女YOUNV| 久久96国产精品久久| 亚洲男人第一无码AV网站| 黑人玩弄人妻中文在线| 亚洲AV日韩AV高潮喷潮无码| 国产偷自视频区视频| 尤物一二三区在线内射美女| 国产成人丝袜视频在线观看| 国产成人A∨麻豆精品| 色狠狠久久AV北条麻妃| chinese炮打老熟女| 日韩精品专区AV无码| 97久久综合亚洲色HEZYO| 女生裙子里面到底穿了啥| ACTION对魔忍| 三个人换着躁B一PL| 国产成人无码一二三区视频| 无码少妇一区二区三区视频| 韩国电影理伦片完整| 亚洲性无码AV中文字幕| 免费A级毛片无码A∨蜜芽试看| AV天堂永久资源网亚洲高清| 如狼似虎的熟妇14P| 国产农村妇女精品一二区| 亚洲色丰满少妇高潮| 欧美日韩精品一区二区在线视频| 赤裸羔羊Ⅲ致命快感 电影| 无码人妻一区二区三区在线视频| 韩国三级日本三级美三级| JAPANESE酒醉侵犯| 姬小满乳液狂飙奖励自己| 亚洲日韩中文字幕日本| 男人J进入女人P呻吟视频免费| 成人无码精品一区二区三区| 羞羞在线版免费阅读入口| 麻豆精品传媒一二三区| 成人亚洲AV网站在线看AAAA| 亚洲va熟妇自拍无码区| 欧美丰满美乳XXⅩ高潮| 国产精品成人AV电影不卡| 一出一进一爽一粗一大小说| 日韩精品无码一本二本三本| 国内一区二区三区香蕉AⅤ| 99久久婷婷国产一区二区| 香港三日本三级少妇三级2021 | 又粗又大内射免费视频小说| 日韩精品少妇无码受不了| 狠狠噜天天噜日日噜| 爸爸你不能谢在里面来| 亚洲久悠悠色悠在线播放| 日韩AⅤ无码大片无码片| 精品少妇av无码美人妻| 丰满妇女BBWBBWBBWBB| 尤物精品国产第一福利网站| 无码精品A∨在线观看无广告 | 无码精品人妻一区二区| 久久久久成人精品| 国产成人亚洲精品无码影院BT| 2023年最新绝伦推理片推荐| 亚洲国产精品成人精品无码区| 色婷婷综合激情综在线播放| 内谢XXXXX8老| 久久久久久国产精品免费无码| 国产精品亚洲综合色区韩国| 成人毛片女18免费| 99国产精品99久久久久久| 亚洲一码和欧洲二码的尺码区别| 五月天久久久噜噜噜久久| 日本熟妇裸交ⅩXX视频全过程| 妺妺窝人体色WWW在线一| 久久无码专区国产精品| av资源在线观看少妇| 熟妇高潮精品一区二区三区| 公主很忙(N)甜烟| 亚洲欧美成人中文日韩电影网站| 欧美精品VIDEOSEX极品| 播放少妇的奶头出奶水的毛片| 人人做人人澡人人爽欧美| 国产成人综合亚洲AV| 中国A级毛片免费| 上司揉捏人妻丰满双乳电影| 国产精品无码久久综合 | 亚洲精品无码久久久久久| 久久不见久久见中文字幕免费| 国产成人精品无码一区二区三区| 欧美肉体裸交做爰XXXⅩ性玉蒲| 国产成人人综合亚洲欧美丁香花| 中文成人无码精品久久久不卡免费| 少妇被黑人到高潮喷白浆| 乱中年女人伦AV| 久久鬼色综合88久久| 国产帅男男Gay在线观看| 拔萝卜电视剧高清免费| 99久久国产综合精品麻豆| 一区二区三区在线 | 日| 在线观看免费视频| 91人人妻人人澡人人爽人人精品 | 日韩AV无码精品人妻系列| 国产一精品一AV一免费爽爽| YY8098影视理论无码专区| 亚洲精品宾馆在线精品酒店| 铜铜铜铜铜铜铜好多疼| 欧美怡春院一区二区三区| 久久夜色精品国产噜噜亚洲AV | 国产一区二区三区好的精华液| 大桥久未无码吹潮在线观看| 爸的比老公大两倍儿媳叫什么呢| 暴躁老外玩MINECRAFT| 顶级私人家庭影院| 精品国产乱码久久久久久浪潮小说 | 国产精品国产三级国产专播| 丁香花在线观看免费观看图片| 被老头玩弄邻居人妻中文字幕| 波多野结衣AV在线| 国产成人AV综合色| 免费国内接码在线接收| 女生输了给对方玩一个月| 人久久精品中文字幕无码小明47 | 精品久久久久中文字幕日本| 国内精品人妻无码久久久影院| 国产熟女真实乱精品视频| 久爱WWW成人网免费视频| 久久久亚洲一区少妇无码| 久久精品午夜亚洲AV无码少妇 | 大炕上的肉体交换| 国产最好的高清播放机品牌| 免费AV片大尺度在线观看| 西西人体444WWW大胆无码视频| 亚洲精品国自产拍在线观看 | 熟女少妇丰满一区二区| 性色AV无码一区二区三区人妻| 亚洲国产超清无码专区| 中文手机电影在线观看| 斑马视频电影免费观看| 国产精品成人一区二区不卡| 好满射太多了装不下了APP| 久久婷婷五月综合成人D啪| 秋霞鲁丝片AⅤ无码入口| 亚洲AV无码乱码国产精品久久| MD豆传媒一二三区进站口在线看| 久久精品亚洲精品国产色婷| 欧美视频一区二区三区| 无翼乌全彩工口里番库| JAPANESE军人强迫| 成人欧美日韩一区二区三区| 美女扒开裤衩让男人桶爽| 日韩在线观看视频一区二区| 亚洲AV性色在线观看| 2020精品国产自在现线看| 国产人妻麻豆蜜桃色精品电影| 久久亚洲精品无码AⅤ大香| 三个男人换着躁我一| 一本一道AV无码中文字幕﹣百度| 国产激情一区二区三区| 日本三级黄色视频| MM131美女视频毛片| 国产亚洲精品一区在线播放| 免费视频片多多视频免费高清| 无码丰满少妇2在线观看| 中字年轻漂亮的儿媳2| 国产无套无码AⅤ在线观看 | 爱丫爱丫在线影院| 久久精品人妻中文系列葵司| 少妇无力反抗慢慢张开双腿| 一边做一边潮喷18P| 国产亚洲精久久久久久无码7| 人妻少妇精品中文字幕AV蜜桃| 影帝隔着内裤滑进去了H| 国产真实老熟女无套内射| 色一乱一伦一图一区二区精品| 97久久国产露脸精品国产| 久久精品国产亚洲AV无码麻豆| 伊人婷婷六月狠狠狠去| 国内美女推油按摩在线播放| 日韩一卡2卡3卡4卡新区亚洲| 与亲女洗澡时伦了| 娇妻在我面前被黑人撑爆| 特黄三级又爽又粗又大| 成人区人妻精品一区二区不卡网站 | 中文字幕亚洲综合小综合在线| 久久精品女人天堂AV麻| 午夜内射高潮视频| 国产69久久精品成人看| 人人妻人人澡人人爽欧美一区| 中文无码乱人伦中文视频在线 | 极品无码国模国产在线观看| 亚洲AV成人无码精品网站色欲 | 精品无码综合一区二区三区| 亚洲国产丝袜精品一区| 国产精品亚洲А∨无码播放不卡 | 欧美成人精品第一区| 一本色道久久88综合日韩精品| 久久久精品国产免大香伊| 亚洲中字无码AV电影在线观看| 看黄A大片爽爽影院免费无码| 被多人玩弄的烂货苏妖精|