создать собственное меню на BlackBerry - PullRequest
2 голосов
/ 25 ноября 2011

Я создаю пользовательское меню в новом расширенном классе popupScreen. Я пошел, когда пользовательские часы на кнопку меню отображения меню. Я использую этот код

protected boolean keyDown(int keycode, int time) {
     if(Keypad.KEY_MENU == Keypad.key(keycode))
        {
         UiApplication.getUiApplication().popScreen(getScreen());
            Menu popup = new Menu();
            UiApplication.getUiApplication().pushScreen(popup);
            return true;
        }
        else
        return super.keyDown(keycode, time);
}

но я получаю сообщение об ошибке в этой строке UiApplication.getUiApplication (). PushScreen (popup); вызывает pushScreen. Как я могу изменить этот код или есть другой способ для отображения этого меню.

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

попробуйте

protected boolean keyDown(int keycode, int time) {
     if(Keypad.KEY_MENU == Keypad.key(keycode))
        {
           synchronized (UiApplication.getEventLock())
      {
            UiApplication.getUiApplication().popScreen(getScreen());
            Menu popup = new Menu();
            UiApplication.getUiApplication().pushScreen(popup);     
      }


            return true;
        }
        else
        return super.keyDown(keycode, time);
}
0 голосов
/ 25 ноября 2011

В Blackberry создание, отображение и скрытие меню обрабатывается системой;Вам будет предоставлен обратный вызов в соответствующее время.Обратные вызовы, которые вам нужно будет кодировать:

public boolean onMenu( int instance )
{

 return true; // Menu is created
}

public void makeMenu( Menu menu, int instance )
{
  MenuItem _desired_menu_item = new MenuItem()
  {
     public void run()
     {

     }
  }
  menu.add( _desired_menu_item );
  super.makeMenu( menu, instance)
}

Вот и все!Это будет работать.Пожалуйста, проверьте Blackberry "UI и навигационное руководство" для более подробной информации

...