Ключевой символ ovveride метод генерирует invalidStateException на симуляторе BlackBerry - PullRequest
0 голосов
/ 21 марта 2012

Когда я использую этот метод, он генерирует недопустимое выражение состояния на симуляторе Blackberry.

protected boolean keyChar(char c, int status, int time) 
    {
        if (c == Keypad.KEY_ESCAPE) 
        {
                      UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
        }
                return super.keyChar(c, status, time);

}

если я даю тип возвращаемого значения true, на симуляторе ошибки не отображаются.

когда я использую super.keyChar (c, status, time). это бросить незаконное государственное выражение.

Но в устройстве не отображается сообщение об ошибке. Только на симуляторе ежевики. в чем проблема?

Ответы [ 2 ]

1 голос
/ 21 марта 2012

попробуйте это:

protected boolean keyChar(char c, int status, int time) 
{
    if (c == Keypad.KEY_ESCAPE) 
    {
        UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
                UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
            }
        });
        return true;
    }
    return super.keyChar(c, status, time);
}
0 голосов
/ 21 марта 2012
protected boolean keyChar(char c, int status, int time) 
{
    if (c == Characters.ESCAPE) 
    {
       UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());

    }
return true;
}

попробуй это. Это будет работать.

И вы можете решить вашу проблему с помощью returning true из вашего блока if и return super.keyChar(c, status, time); из другой части. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...