BlackBerry IllegalStateException при нажатии на пункт меню - PullRequest
1 голос
/ 30 ноября 2010

Я хочу, чтобы работал следующий поток приложений:

  1. Запустите мое приложение и покажите две кнопки: Динамик и Отключение звука
  2. После ответа на входящий вызов пользователь переходит к моему приложению во время разговора.
  3. Пользователь нажимает кнопку динамика. Следует вызвать меню «Активировать громкую связь».

Я могу получить все пункты меню, включая «Активировать громкую связь». Но при запуске меню выдает IllegalStateException.

мой код

public void fieldChanged(Field field, int context) {
    if(field==FldSpeaker){
            runMenuItem("Activate Speakerphone");
    }
}

private void runMenuItem(String menuItemText) {
        Screen screen = Ui.getUiEngine().getActiveScreen();
        Menu menu = screen.getMenu(0);
        for (int i = 0, cnt = menu.getSize(); i < cnt; i++)
                if(menu.getItem(i).toString().equalsIgnoreCase(menuItemText))
                        menu.getItem(i).run();//null error here
    }

Я пытался

synchronized(UiApplication.getApplication().getEventLock()){
    //Run code
}

..

synchronized(UiApplication.getApplication().getAppEventLock()){
    //Run Code
}

..

UiApplication.getUiApplication().invokeLater(new Runnable(){ 
    public void run(){
        //Run Code
    }
}

..

UiApplication.getUiApplication().invokeAndWait(new Runnable(){ 
    public void run(){
        //Run Code
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...