您好,登錄后才能下訂單哦!
菜單創(chuàng)建的兩種方式:
1、在xml文件中創(chuàng)建菜單:
具體代碼:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.xunfang.menucreate.MainActivity" >
//此處創(chuàng)建子菜單
<item
android:id="@+id/sms"
android:icon="@drawable/sms"
android:orderInCategory="100"
android:showAsAction="never"
android:title="短信">
<menu>
<item
android:id="@+id/smsfamily"
android:icon="@drawable/smsalt"
android:orderInCategory="100"
android:showAsAction="never"
android:title="家庭短信"/>
<item
android:id="@+id/smscompany"
android:icon="@drawable/twitteralt"
android:orderInCategory="100"
android:showAsAction="never"
android:title="公司短信"/>
</menu>
</item>
<item
android:id="@+id/camera"
android:icon="@drawable/camera"
android:orderInCategory="100"
android:showAsAction="never"
android:title="照相機(jī)"/>
</menu>
這種情況下創(chuàng)建菜單時(shí),需要用到item標(biāo)簽,創(chuàng)建一個(gè)菜單選項(xiàng),就必須用到一個(gè)item
當(dāng)需要創(chuàng)建子菜單的時(shí)候:如有背景色的部分那樣,在主菜單下創(chuàng)建子菜單,需要在item中嵌套一個(gè)menu標(biāo)簽,然后在menu標(biāo)簽中寫子菜單,每一個(gè)子菜單還是要寫在item標(biāo)簽中。
2、動(dòng)態(tài)創(chuàng)建菜單:
public boolean onCreateOptionsMenu(Menu menu) {
//給文件創(chuàng)建子菜單
SubMenu sub = menu.addSubMenu(Menu.FIRST, 1, 1, "文件") ;
sub.add(Menu.FIRST+3, 10, 1, "隱藏組3") ;
sub.add(Menu.FIRST+3, 11, 2, "顯示組3") ;
menu.add(Menu.FIRST,2,2,"編輯") ;
sub.setIcon(R.drawable.browser) ;
sub.setHeaderIcon(R.drawable.browser) ;
MenuItem refactor = menu.add(Menu.FIRST + 1,3,10,"重構(gòu)") ;
refactor.setIcon(R.drawable.clock) ;
MenuItem source = menu.add(Menu.FIRST + 1,4,6,"源碼") ;
source.setIcon(R.drawable.sms) ;
menu.add(Menu.FIRST + 2 ,5,5,"導(dǎo)航") ;
menu.add(Menu.FIRST + 2,6,3,"搜索") ;
return true;
}
上面add()方法中的四個(gè)參數(shù)分別為:第一個(gè)參數(shù)表示處于同一個(gè)組中
第二個(gè)參數(shù)表示一個(gè)唯一的id
第三個(gè)參數(shù)是一個(gè)id,表示在菜單中菜單項(xiàng)顯示的順序
第四個(gè)參數(shù)表示顯示的文本
注:給菜單項(xiàng)添加圖標(biāo):
private void setIconVisible(Menu menu) {
try {
Class clazz = Class
.forName("com.android.internal.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible",
boolean.class);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
有背景的部分為代碼關(guān)鍵部分,上面這個(gè)方法是我自己添加的一個(gè)方法,在添加圖標(biāo)的時(shí)候只需要調(diào)用這個(gè)方法就行了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。