我有一个包含菜单栏的Xamarin Android项目。我几乎可以肯定这是昨天正常工作的,但从那以后,每次我点击菜单栏项目,例如'设置',它会带我进入设置活动,然后返回到主要活动,菜单栏项目正在重复。
所以我刚才有“设置”这样的地方。和'帮助',我没有2个设置和2个帮助项目。如果我再次这样做,我将有3个。
我假设当应用程序转到另一个活动时,这与onPause()和onResume()方法有关。但是,我无法看到我出错的地方(我是Android的新手)
我在主要活动中生成菜单栏的代码是:
public override bool OnPrepareOptionsMenu(IMenu menu1)
{
MenuInflater.Inflate(Resource.Menu.myMenuBar, menu1);
return base.OnPrepareOptionsMenu(menu1);
}
public override bool OnOptionsItemSelected(IMenuItem item) //do something when an options item is pressed
{
switch (item.ItemId)
{
case Resource.Id.settingsItem:
showSettings ();
return true;
case Resource.Id.helpItem:
//do something
return true;
}
return base.OnOptionsItemSelected(item);
}
对此有任何想法将不胜感激。我确定它相当简单,但我不知道是什么。
答案 0 :(得分:1)
您可能需要清除菜单
public override bool OnPrepareOptionsMenu(IMenu menu1)
{
menu1.clear();
MenuInflater.Inflate(Resource.Menu.myMenuBar, menu1);
return base.OnPrepareOptionsMenu(menu1);
}
也许你应该在OnCreateOptionsMenu(IMenu, MenuInflater)
方法中夸大菜单。 OnPrepareOptionsMenu(IMenu)
用于启用/禁用和动态修改项目。