在溢出菜单中查找图标视图
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 然后找到视图找到了解决方案。
我正在尝试查找溢出图标的视图。单击并打开溢出图标后,我尝试在 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 然后找到视图找到了解决方案。