以编程方式打开操作栏中某个项目下的列表菜单

时间:2014-12-20 22:23:57

标签: android menuitem

我有一个位于操作栏中的菜单:

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

...

   <item android:id="@+id/map_types_item"
     android:title="@string/map_menu_map_type_text"
     asam:showAsAction="always"
     android:icon="@drawable/ic_action_bar_map"
     android:menuCategory="system"
     android:orderInCategory="300">

         <menu android:id="@+id/map_types_menu">
            <group android:checkableBehavior="single">
                <item android:id="@+id/map_type_normal"
                    android:title="@string/map_type_normal_text"
                    />

                <item android:id="@+id/map_type_satellite"
                    android:title="@string/map_type_satellite_text"
                    />

                <item android:id="@+id/map_type_hybrid"
                    android:title="@string/map_type_hybrid_text"
                    />
            </group>
        </menu>


     </item>
</menu>

我想按比例点击该按钮,以便在操作栏中打开菜单。

这可能吗?

尝试:

mapTypeMenu = menu.findItem(R.id.map_types_item);

OR

mapTypeMenu = menu.findItem(R.id.map_types_menu);

仅找到R.id.map_types_item

然后以编程方式打开:

onOptionsItemSelected(mapTypeMenuItem);

这可能吗?如果是这样,我做错了什么?

修改

此图显示了我的操作栏。地图图标是我以编程方式尝试点击的图标:

enter image description here

此图显示了从用户界面点击时的样子。我想以编程方式打开它:

enter image description here

1 个答案:

答案 0 :(得分:3)

this question可能重复。


致电menu.performIdentifierAction(R.id.map_types_item, 0);