最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android菜單操作之創(chuàng)建并響應(yīng)菜單

 更新時間:2016年04月17日 17:04:12   作者:CodingMyWorld  
這篇文章主要介紹了Android菜單操作之創(chuàng)建并響應(yīng)菜單的相關(guān)資料,如何使用代碼創(chuàng)建菜單項,給菜單項分組,及各種響應(yīng)菜單事件的方法,需要的朋友可以參考下

上一篇《學(xué)習(xí)理解Android菜單Menu操作》簡單介紹了一下Android的菜單,今天讓我們看一下如何通過代碼創(chuàng)建和響應(yīng)最常用的選項菜單(options menu)。

一、創(chuàng)建options menu

之前提到,Android的activity已經(jīng)為我們提前創(chuàng)建好了android.view.Menu對象,并提供了回調(diào)方法onCreateOptionsMenu(Menu menu)供我們初始化菜單的內(nèi)容。該方法只會在選項菜單第一次顯示的時候被執(zhí)行,如果你需要動態(tài)改變選項菜單的內(nèi)容,請使用 onPrepareOptionsMenu(Menu)。

@Override
publicboolean onCreateOptionsMenu(Menu menu) {
 // 調(diào)用父類方法來加入系統(tǒng)菜單
 // 雖然目前android還沒有系統(tǒng)菜單,但是為了兼容到以后的版本,最好加上
super.onCreateOptionsMenu(menu);
 
 // 添加菜單項(多種方式)
 // 1.直接指定標(biāo)題
 menu.add("菜單項1");
 // 2.通過資源指定標(biāo)題
 menu.add(R.string.menuitem2);
 // 3.顯示指定菜單項的組號、ID、排序號、標(biāo)題
 menu.add(
  1,  //組號
  Menu.FIRST, //唯一的ID號
  Menu.FIRST, //排序號
"菜單項3"); //標(biāo)題
 
 // 如果希望顯示菜單,請返回true
returntrue;
}

上面的代碼演示了添加菜單項的3種方法,下面解釋下第三種方法add(int groupId, int itemId, int order, CharSequence title)。其中,第一個參數(shù)是組號,android中你可以給菜單分組,以便快速地操作同一組的菜單。第二個參數(shù)指定每個菜單項的唯一ID號,你可以自己指定,也可以讓系統(tǒng)來自動分配,在響應(yīng)菜單時你需要通過ID號來判斷哪個菜單被點擊了。因此常規(guī)的做法是定義一些ID常量,但在android中有更好的方法,就是通過資源文件來引用,這個之后介紹。第三個參數(shù)代表菜單項顯示順序的編號,編號小的顯示在前面。

二、給菜單項分組

@Override
publicboolean onCreateOptionsMenu(Menu menu) {
 super.onCreateOptionsMenu(menu);
 // 添加4個菜單項,分成2組
int group1 =1;
 int gourp2 =2;
 menu.add(group1, 1, 1, "item 1");
 menu.add(group1, 2, 2, "item 2");
 menu.add(gourp2, 3, 3, "item 3");
 menu.add(gourp2, 4, 4, "item 4");
 // 顯示菜單
returntrue;
}

你可以向上面這樣給菜單項分組,分組之后就能使用menu中提供的方法對組進行操作了,如下:

menu.removeGroup(group1); //刪除一組菜單
menu.setGroupVisible(gourp2, visible); //設(shè)置一組菜單是否可見
menu.setGroupEnabled(gourp2, enabled); //設(shè)置一組菜單是否可點
menu.setGroupCheckable(gourp2, checkable, exclusive); //設(shè)置一組菜單的勾選情況

三、響應(yīng)菜單項

android提供了多種響應(yīng)菜單項的方式,下面一一介紹

1、通過onOptionsItemSelected方法
使用的最多方法是重寫activity類的 onOptionsItemSelected(MenuItem)回調(diào)方法,每當(dāng)有菜單項被點擊時,android就會調(diào)用該方法,并傳入被點擊菜單項。

@Override
publicboolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 //響應(yīng)每個菜單項(通過菜單項的ID)
case1:
 // do something here
break;
 case2:
 // do something here
break;
 case3:
 // do something here
break;
 case4:
 // do something here
break;
 default:
 //對沒有處理的事件,交給父類來處理
returnsuper.onOptionsItemSelected(item);
 }
 //返回true表示處理完菜單項的事件,不需要將該事件繼續(xù)傳播下去了
returntrue;
}

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

2.使用監(jiān)聽器
雖然第一種方法是推薦使用的方法,android還是提供了類似java swing的監(jiān)聽器方式來響應(yīng)菜單。使用監(jiān)聽器的方式分為兩步:

//第一步:創(chuàng)建監(jiān)聽器類
class MyMenuItemClickListener implements OnMenuItemClickListener {
 @Override
 publicboolean onMenuItemClick(MenuItem item) {
 // do something here...
returntrue; //finish handling
 }
}

//第二步:為菜單項注冊監(jiān)聽器
menuItem.setOnMenuItemClickListener(new MyMenuItemClickListener());

 android文檔對onMenuItemClick(MenuItem item)回調(diào)方法的說明是"Called when a menu item has been invoked. This is the first code that is executed; if it returns true, no other callbacks will be executed." 可見該方法先于onOptionsItemSelected執(zhí)行。

3.使用Intent響應(yīng)菜單
第3種方式是直接在MenuItem上調(diào)用setIntent(Intent intent)方法,這樣android會自動在該菜單被點擊時調(diào)用 startActivity(Intent)。但是個人認(rèn)為與其這樣還不如直接在onOptionsItemSelected的case里手動調(diào)用 startActivity(Intent)來的直觀。

結(jié)語

本文詳細(xì)介紹了如何創(chuàng)建和響應(yīng)選項菜單,下一篇《Android菜單操作之SubMenu和IconMenu》將繼續(xù)介紹子菜單和圖標(biāo)菜單的使用,大家繼續(xù)關(guān)注哦。

相關(guān)文章

  • Android自定義實現(xiàn)BaseAdapter的普通實現(xiàn)

    Android自定義實現(xiàn)BaseAdapter的普通實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Android自定義實現(xiàn)BaseAdapter的普通實現(xiàn),感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android N多窗口支持

    Android N多窗口支持

    Android N 可以同時顯示多個應(yīng)用窗口。在手機上,兩個應(yīng)用可以在“分屏”模式中左右并排或上下并排顯示。本文將對此介紹。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05
  • Android跳轉(zhuǎn)系統(tǒng)設(shè)置Settings的各個界面詳解

    Android跳轉(zhuǎn)系統(tǒng)設(shè)置Settings的各個界面詳解

    系統(tǒng)設(shè)置Settings中定義的一些常用的各界面ACTION常量,下面這篇文章主要給大家介紹了關(guān)于Android跳轉(zhuǎn)系統(tǒng)設(shè)置Settings的各個界面,文中介紹非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Android Studio中的Gradle依賴深入講解

    Android Studio中的Gradle依賴深入講解

    Android Studio由于使用了gradle的進行項目構(gòu)建,使我們開發(fā)app方便很多,下面這篇文章主要給大家介紹了關(guān)于Android Studio中Gradle依賴的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • Android如何添加控件監(jiān)聽器(三種方式)

    Android如何添加控件監(jiān)聽器(三種方式)

    本文主要介紹了Android如何添加控件監(jiān)聽器(三種方式),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • flutter 自定義card陰影效果及card使用

    flutter 自定義card陰影效果及card使用

    這篇文章主要介紹了flutter 自定義card陰影效果及card使用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Android 簡單的實現(xiàn)滑塊拼圖驗證碼功能

    Android 簡單的實現(xiàn)滑塊拼圖驗證碼功能

    這篇文章主要介紹了Android 簡單的實現(xiàn)滑塊拼圖驗證碼功能,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-03-03
  • Android顯示全文折疊控件使用方法詳解

    Android顯示全文折疊控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Android顯示全文折疊控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Android官方的側(cè)滑控件DrawerLayout的示例代碼

    Android官方的側(cè)滑控件DrawerLayout的示例代碼

    這篇文章主要介紹了Android官方的側(cè)滑控件DrawerLayout的示例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-09-09
  • 簡介Android 中的AsyncTask

    簡介Android 中的AsyncTask

    AsyncTask是一個很常用的API,尤其異步處理數(shù)據(jù)并將數(shù)據(jù)應(yīng)用到視圖的操作場合。接下來通過本文給大家介紹Android 中的AsyncTask,感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03

最新評論

轮台县| 扎赉特旗| 增城市| 嘉善县| 原阳县| 揭阳市| 富川| 嘉善县| 沧州市| 鄂温| 潮安县| 石渠县| 河北省| 绥阳县| 海兴县| 穆棱市| 泗水县| 金塔县| 余姚市| 沐川县| 定南县| 舞阳县| 吉林省| 蛟河市| 岳阳县| 习水县| 古蔺县| 宁阳县| 犍为县| 新化县| 灌阳县| 合江县| 长葛市| 多伦县| 滦平县| 扎赉特旗| 定结县| 崇明县| 安丘市| 彰化市| 二手房|