在溢出菜单中查找图标视图

Finding view of an icon in overflow menu

我正在尝试查找溢出图标的视图。单击并打开溢出图标后,我尝试在 onoptionsitemselected 中使用:

View view = getActivity().findViewById(R.id.menu_tag); // null
View view = getActivity().findViewById(R.id.mainMenu); // not null.

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

<item
    android:id="@+id/mainMenu"
    android:title="@string/text"
    android:orderInCategory="101"
    android:icon="@drawable/ic_more_vert_white_24dp"
    app:showAsAction="always">
    <menu>

        <item
            android:id="@+id/menu_tag"
            android:icon="@drawable/tag_32"
            app:showAsAction="always|withText"
            android:title="@string/tags"/>
        <item
            android:id="@+id/menu_profile"
            android:icon="@drawable/user_32"
            app:showAsAction="always|withText"
            android:title="@string/profile"/>
        <item
            android:id="@+id/menu_debug"
            android:icon="@drawable/insect_32"
            app:showAsAction="always|withText"
            android:title="@string/debug"/>
    </menu>
</item>
</menu>

它给了我 null 但对 actionbar 项目工作正常。

您应该尝试在 onCreateOptionsMenu 方法中查找视图,如下所示:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    this.optionsMenu = menu;
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menufile, menu);
    MenuItem item = menu.findItem(R.id.mainmenu);

return true;
}

我通过将 actionview 设置为 imagebutton 然后找到视图找到了解决方案。