Android 每次按下菜单按钮时,菜单项都会不断添加

Android 每次按下菜单按钮时,菜单项都会不断添加,android,android-actionbar,menuitem,Android,Android Actionbar,Menuitem,我增加了两个菜单项。这两个功能都很好,但每当我按下菜单按钮时,新的菜单项就会出现在旧的菜单项旁边。如下图所示 下面是我的菜单项xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:title="Search" android:icon="@drawable/

我增加了两个菜单项。这两个功能都很好,但每当我按下菜单按钮时,新的菜单项就会出现在旧的菜单项旁边。如下图所示

下面是我的菜单项xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">


<item
android:title="Search"
android:icon="@drawable/search_white_24dp"
android:id="@+id/searchmenu"
app:showAsAction="always">

</item>
<item
android:icon="@drawable/settings_white_24dp"
android:title="Setting"
android:id="@+id/settingmenu"
app:showAsAction="always"
/>


</menu>
请帮助我,我错在哪里

对不起,这会很长,但我有第二个问题

2) 我的第二个问题我有另一份菜单。xml,其中有共享图标代替搜索图标,但当我试图用相同的代码在操作栏上显示时,菜单项不会显示在操作栏上。下面是我的另一个菜单xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<item
android:title="Share"
android:icon="@drawable/share_white"
android:id="@+id/share_tarika"
app:showAsAction="always"
/>
<item android:title="Setting"
    android:icon="@drawable/settings_white_24dp"
    android:id="@id/settingmenu"
    app:showAsAction="always"/>
</menu> 
试试这个

@Override
    public void onCreateOptionsMenu(Menu menu ) {
       menu.clear();// use menu.clear
       MenuInflater inflater = getMenuInflater();    
       inflater.inflate(R.menu."your current activity name ", menu);
    return true;
}
使用menu.clear()试试这个

@Override
    public void onCreateOptionsMenu(Menu menu ) {
       menu.clear();// use menu.clear
       MenuInflater inflater = getMenuInflater();    
       inflater.inflate(R.menu."your current activity name ", menu);
    return true;
}

使用menu.clear()

最好这样做:

@Override
public void onCreateOptionsMenu(Menu menu ) {
   getMenuInflater().inflate(R.menu."your current activity name ", menu);
return true;
}
如果你只有一份菜单。然后从“活动”页面设置菜单并返回true,然后无需清除菜单。并且不会出现重复菜单

但若您使用两个片段,并且必须根据片段更改活动菜单,那个么只需要清除菜单并用新的一个来重置它


如果您在fragment中使用OnCreateOptions菜单(菜单菜单菜单),请删除它们。

最好的方法如下:

@Override
public void onCreateOptionsMenu(Menu menu ) {
   getMenuInflater().inflate(R.menu."your current activity name ", menu);
return true;
}
如果你只有一份菜单。然后从“活动”页面设置菜单并返回true,然后无需清除菜单。并且不会出现重复菜单

但若您使用两个片段,并且必须根据片段更改活动菜单,那个么只需要清除菜单并用新的一个来重置它


如果您正在片段中使用OnCreateOptions菜单(菜单菜单菜单),请将其删除。

您从
OnOptions ItemSelected()返回的是什么?
请帮助我回答第二个问题您从
OnOptions ItemSelected()返回的是什么
?请帮助我回答第二个问题,我应该在true或False之外返回什么对于每种情况返回true,对于默认返回super.onOptions ItemSelected(item);Hey check the new Solution每次重新创建菜单之前都会清除actionbar上的视图。。因此,如果前面的观点存在,它会变得清晰,请用不同的标题重新提出第二个问题。。。我们需要遵守社区标准。。由于第二个问题不同,解决方案也不同,因此无法在同一个帖子中回答。除了true或False之外,我应该返回什么?对于每个案例,返回true,对于默认返回super.OnOptions ItemSelected(item);Hey check the new Solution每次重新创建菜单之前都会清除actionbar上的视图。。因此,如果前面的观点存在,它会变得清晰,请用不同的标题重新提出第二个问题。。。我们需要遵守社区标准。。因为第二个问题不同,解决方案也不同,所以不能在同一篇文章中回答