我怎样才能在xml中获得SubMenu?

时间:2015-01-23 16:28:06

标签: android

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/item_first"
        android:showAsAction="always"
        android:visible="true">
    </item>
    <item
        android:id="@+id/item_second"
        android:showAsAction="always"
        android:visible="true">
    </item>
    <item
        android:id="@+id/item_third"
        android:showAsAction="always"
        android:visible="true">

        <menu 
            android:id="@+id/menu_revice" >

            <item
                android:id="@+id/ap_none"
                android:showAsAction="never"
                android:title="Item in SubMenu 1"/>
            <item
                android:id="@+id/ap_mid"
                android:showAsAction="never"
                android:title="Item in SubMenu 2"/>

        </menu>
    </item>

</menu>

这是我的menu.xml文件。 我需要在'item_thrid'中获得SubMenu'menu_revice'。 然后我尝试在onCreate(),onCreateOptionsMenu(),onOptionsItemSelected(),onPrepareOptionsMenu():

Menu MainMenu

//try 1
Menu subMenu = (Menu)findViewById(R.id.menu_revice); // nullPointerException

// try 2
SubMenu subMenu = (SubMenu)findViewById(R.id.menu_revice); // nullPointerException

为什么会发生nullpointerException ..? 我不知道如何获得SubMenu。 请告诉我怎么样...... 感谢。

1 个答案:

答案 0 :(得分:3)

onCreateOptionsMenu(Menu menu)

menu.getItem(0).getSubMenu(); //submenu for item in position 0

修改

参考:http://developer.android.com/reference/android/view/MenuItem.html#getSubMenu()