务实访问MenuItem Actionbar Android

时间:2013-07-09 07:40:13

标签: android menu android-actionbar menuitem

我有一个菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/menu_filter_selection"
    android:icon="@drawable/ic_action_filter"
    android:showAsAction="always"
    android:title="@string/sort">
    <menu>
        <group
            android:id="@+id/group_sort_selection"
            android:checkableBehavior="single"
            android:menuCategory="container" >
            <item
                android:id="@+id/menu_incoming"
                android:title="@string/incoming"/>
            <item
                android:id="@+id/menu_outgoing"
                android:title="@string/outgoing"/>
            <item
                android:id="@+id/menu_combined"
                android:checked="true"
                android:title="@string/combined"/>
        </group>
    </menu>
</item>

</menu>

我想通过索引访问代码中的menu_incoming,而不是使用Menu.getItem(int index)方法访问ID。

我已尝试在onPrepareOptionsMenu(Menu menu)中使用以下代码:

((Menu) menu.findItem(R.id.menu_filter_selection)).
    getItem(0).setChecked(true);

但显然它是异常,因为menu_filter_selection不是Menu。知道如何通过menu_incoming方法访问Menu.getItem(int index)

1 个答案:

答案 0 :(得分:2)

一种可能的方法是,使用MenuItem.getSubMenu()

menu.getItem(0).getSubMenu().getItem(0);