建立子功能表們
一個子功能表是一個在已有菜單的某個功能表項目上開啟的菜單.你可以向任何菜單添加子功能表.當你的程式擁有很多功能並可按類別組織起來,那麼子功能表是最佳選擇.比如PC 程式中的功能表列 (File, Edit,View等等.).
當建立你的菜單資源時,你可以添加一個<menu> 元素作為一個<item>元素的孩子來建立子功能表.例如:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
android:icon="@drawable/file"
android:title="@string/file" >
<!-- "file" submenu -->
<menu>
<item android:id="@+id/create_new"
android:title="@string/create_new" />
<item android:id="@+id/open"
android:title="@string/open" />
</menu>
</item>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
android:icon="@drawable/file"
android:title="@string/file" >
<!-- "file" submenu -->
<menu>
<item android:id="@+id/create_new"
android:title="@string/create_new" />
<item android:id="@+id/open"
android:title="@string/open" />
</menu>
</item>
</menu>
當使用者從一個子功能表中選擇一個功能表項目, 父菜單的響應功能表項目選擇的回調方法會接收到事件.例如,如果上述菜單是一個選項菜單,那麼方法 onOptionsItemSelected() 就會被調用.
你也可以使用 addSubMenu()來動態添加子功能表到一個菜單中.這個方法會返回一個新的 SubMenu 對象, 你可以使用add()方法向這個SubMenu對象添加功能表項目.
摘自 nkmnkm的專欄