2014-07-09 2 views
0

У меня есть проект Xamarin Android, содержащий строку меню. Я почти уверен, что вчера это работало правильно, но с тех пор каждый раз, когда я нажимаю элемент меню, например «настройки», который приводит меня в действие «Настройки», затем возвращаюсь к основному виду деятельности, пунктам меню повторяются.Xamarin Android Menu Bar повторяет iteslf

Так что, когда у меня только что были «Настройки» и «Помощь», у меня нет двух настроек и 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

Это не имеет никакого отношения к методам onPause() и onResume(). Вы проверили форум поддержки Xamarin? Возможно, его ошибка там ... – waqaslam

ответ

1

Вы должны, вероятно, придется убрать меню

public override bool OnPrepareOptionsMenu(IMenu menu1) 
{ 
    menu1.clear(); 
    MenuInflater.Inflate(Resource.Menu.myMenuBar, menu1); 
    return base.OnPrepareOptionsMenu(menu1); 
} 

И, возможно, вы должны надуть меню в методе OnCreateOptionsMenu(IMenu, MenuInflater). OnPrepareOptionsMenu(IMenu) предназначен для включения/выключения и динамического изменения элементов.