如何在xml中获取子菜单?

3
<?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”中的子菜单“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

为什么会发生空指针异常?我不知道如何获取子菜单。请告诉我怎么做。谢谢。


菜单项不是“视图”,因此您不能使用findViewById(...)。无论如何,您为什么要这样做呢?当选择菜单项时,相关的MenuItem将传递给处理程序,然后您可以从中获取其ID并相应地采取行动。 - Squonk
1个回答

5

请添加一个API文档链接,以使答案完整。 - scorpiodawg
谢谢!我解决了问题。从现在开始,我会先查看API文档。 - vvThat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接