0

我有一个菜单:

<?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通过索引而不是id,使用Menu.getItem(int index)方法在代码中访问。

我尝试过以下代码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)方法访问。

4

1 回答 1

2

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

menu.getItem(0).getSubMenu().getItem(0);
于 2013-07-09T07:54:59.103 回答