为什么我的 Android onPrepareOptionsMenu 在我单击 MenuIten 时调用
Why my Android onPrepareOptionsMenu called when I click the MenuIten
我使用 onPrepareOptionsMenu 方法加载我的工具栏菜单,因为当我显示不同的框架时我需要更改菜单项。
现在我遇到一个问题,当我点击更多图标显示溢出菜单时,工具栏上的菜单项变成两个双倍,如图,有两个搜索菜单项
我调试了这个,发现当我点击更多菜单项时,onPrepareOptionsMenu
方法会再次调用
这是我的代码
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_selection, menu);
MenuItem item = menu.findItem(R.id.action_search);
mSearchView.setMenuItem(item);
return true;
}
我的菜单xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search"
android:icon="@drawable/icon_menu_search"
android:orderInCategory="100"
android:title="@string/menu_hint_search"
app:showAsAction="always" />
<item
android:id="@+id/action_share_selection"
android:orderInCategory="101"
android:title="@string/menu_hint_share"
app:showAsAction="never" />
<item
android:id="@+id/action_feedback_selection"
android:orderInCategory="102"
android:title="@string/menu_hint_feedback"
app:showAsAction="never" />
我能为此做什么?请帮忙!谢谢!
我仍然不知道原因,但我找到了一个我认为很愚蠢的方法是我 whi
menu.clear();
在我展开布局菜单之前。你们有没有更好的实现方式。
我使用 onPrepareOptionsMenu 方法加载我的工具栏菜单,因为当我显示不同的框架时我需要更改菜单项。
现在我遇到一个问题,当我点击更多图标显示溢出菜单时,工具栏上的菜单项变成两个双倍,如图,有两个搜索菜单项
我调试了这个,发现当我点击更多菜单项时,onPrepareOptionsMenu
方法会再次调用
这是我的代码
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_selection, menu);
MenuItem item = menu.findItem(R.id.action_search);
mSearchView.setMenuItem(item);
return true;
}
我的菜单xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search"
android:icon="@drawable/icon_menu_search"
android:orderInCategory="100"
android:title="@string/menu_hint_search"
app:showAsAction="always" />
<item
android:id="@+id/action_share_selection"
android:orderInCategory="101"
android:title="@string/menu_hint_share"
app:showAsAction="never" />
<item
android:id="@+id/action_feedback_selection"
android:orderInCategory="102"
android:title="@string/menu_hint_feedback"
app:showAsAction="never" />
我能为此做什么?请帮忙!谢谢!
我仍然不知道原因,但我找到了一个我认为很愚蠢的方法是我 whi
menu.clear();
在我展开布局菜单之前。你们有没有更好的实现方式。