单击MenuIten时为什么我的Android onPrepareOptionsMenu被调用

时间:2015-10-28 07:35:39

标签: android menu toolbar

我使用onPrepareOptionsMenu方法加载工具栏的菜单,因为当我显示不同的framgnet时,我需要更改菜单项。

现在我有一个问题,当我点击更多图标显示溢出菜单时,工具栏上的菜单项会改变两个双,如图所示,有两个搜索菜单项

enter image description here

我为此调试了,我发现当我点击更多菜单项时,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" />

我能为此做些什么?请帮忙! THX!

1 个答案:

答案 0 :(得分:0)

我仍然没有理由,但我找到了一种方式,我觉得它是愚蠢的我是谁 在我给布局菜单充气之前menu.clear();。你的任何人都应该有更好的实施方式。