如果是xml形式的話。在onOptionsItemSelected裏面 switch{ case(R.id.XXX)}就可以對應你的各個menu的點擊事件。如果是代碼創建,那就是你創建時的id。
例如 menu.add(0, 1, 1, "XXX"); 這是 一樣在onOptionsItemSelected裏面switch{
case 1: //TODO(這是就是這個菜單項的點擊事件了。) }
Activity的父類裏面已經封裝好了menu方法。你只需要重寫父類的onCreateOptionMenu()方法和onOptionsItemSelected()即可。
原文:http://blog.csdn.net/jaycee110905/article/details/8765082
利用LayoutInflater infalter = getLayoutInflater();從XML文件中獲取Layout的樣式。在Menu中也可以採用類似的方式。我們在onCreateOptionsMenu()中如下處理:
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater menuInflater = new MenuInflater(getApplication());
- menuInflater.inflate(R.menu.chapter11_menu, menu);
- return super.onCreateOptionsMenu(menu);
- }
其中我們在res/menu目錄下面創建Menu的xml文件chapter11_menu.xml。我們通過下面的例子看看Menu XML文件如何編寫:
- <?xml version="1.0" encoding="utf-8"?>
- <!-- Menu對應一個Menu的格式 -->
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 我們分三種情況進行設置 -->
- <!-- Part 1 :普通情況,我們增加三個MenuItem,item對應MenuItem的格式。item中的android:id直接就是item的ID,即我們menu.add()中的第二個參數。 -->
- <item android:id="@+id/c11_close"
- <!-- title爲顯示的文字,即menu.add()中的第三個參數的第四個參數,可採用@string/xxx -->
- android:title="Close"
- <!-- orderInCategory表明擺放的順序,不一定從0還是計算,但必須大於等於0,數值小的位於前,如果數值一樣,在我們這個例子中3又兩個值,則安順序擺放,此相當於menu.add()中的第三個參數order。當然我們建議從0,1,2,3....這樣依次給出,並且與XML行文的順序一致。 -->
- android:orderInCategory = "3"
- <!-- icon設置圖標,不言自喻 -->
- android:icon="@drawable/android_focused" />
- <item android:id="@+id/c11_no_icon"
- android:orderInCategory = "2"
- android:title = "Sans Icon" />
- <item android:id="@+id/c11_disabled"
- android:orderInCategory="4"
- android:enabled="false"
- android:title="Disabled" />
- <!-- Part 2 :Group的情況,我們在Group中放入2個item,如果我們要顯示3.4的方式,可以增加group的參數android:checkableBehavior來設置,single表示radio box,all表示checkbox,none表示checkable=flase。group中的android:id就是Gourp_ID,即menu.add()中的第一個參數。在這個例子中,我們設置這個group不可視,如果需要顯示,代碼爲:menu.setGroupVisible(R.id.c11_other_stuff, true);-->
- <group android:id="@+id/c11_other_stuff"
- <!-- Item由android:orderInCategory來設置item的順序,在Group中我們可以通過menuCategory來設置另一個category,裏面的順序和default Category是不方在一起比較,例如這裏麼我們給出0和5,如圖所示,在顯示完default Category,再顯示這個sendonary的內容。 -->
- android:menuCategory="secondary"
- android:checkableBehavior="single"
- android:visible="false" >
- <item android:id="@+id/c11_later"
- android:orderInCategory="0"
- android:title="2nd-To-Last" />
- <item android:id="@+id/last"
- android:orderInCategory="5"
- android:title="Last" />
- </group>
- <!-- Part 3 :子menu的設置,將在menuItem內部嵌套一個<Menu>,在這個例子中的子菜單,試驗了快捷鍵的方式 -->
- <item android:id="@+id/c11_submenu"
- android:orderInCategory="3"
- android:title="A submenu" >
- <menu>
- <item android:id="@+id/c11_non_ghost"
- android:title="Non-Ghost"
- android:visible="true"
- android:alphabeticShortcut="n" />
- <item android:id="@+id/c11_ghost"
- android:title="Ghost"
- android:visible="true"
- android:alphabeticShortcut="g" />
- </menu>
- </item> <!-- end of Part 3 -->
- </menu>