Xamarin Android菜单栏重演

时间:2014-07-09 08:09:09

标签: android android-activity xamarin.ios xamarin

我有一个包含菜单栏的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);
    }

对此有任何想法将不胜感激。我确定它相当简单,但我不知道是什么。

1 个答案:

答案 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)用于启用/禁用和动态修改项目。