Android Action Bar菜单项目
问题描述:
我正在将项目添加到操作栏,并且当活动第一次加载它时,该项目只存在于操作栏中的正确位置。然后,当我到另一个活动,并通过Intent
回来,该菜单项被复制。它仍然显示在操作栏中,但它也显示在菜单中。Android Action Bar菜单项目
这是我的代码从一个活动到另一个活动。这是从添加屏幕到主屏幕。当它进入主屏幕时,添加操作栏项目将显示在菜单和操作栏中。当Home最初加载时,它只会像操作栏一样显示在操作栏中。
Intent intent = new Intent(Add.this, Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这里是家庭的活动我的菜单充气
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.gas_menu, menu);
return true;
}
这项活动扩展tabactivity这可能是它的原因不是重装。我对一个类扩展活动做了一个小测试,它似乎工作正常。我应该只是替换选项卡活动,然后因为它已被弃用。
答
确保您调用super.onCreateOptionsMenu(menu)而不是始终返回true。我试过这段代码,它为我工作。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.your_menu_file, menu);
return super.onCreateOptionsMenu(menu);
}
当您返回到第一个活动时,您是否尝试在'onResume()'中调用'invalidateOptionsMenu()'? –
你可以在intent之前明确地卸载actionBar。或在活动A开始时将其杀死并重建它 - > invalidateOptionsMenu()做到这一点 – bofredo
我认为现有状态存在一些问题。 onCreateOptionsMenu()似乎每次从Activity返回时都会执行。在膨胀菜单之前调用menu.clear()应该适合你。 –