Есть ли событие, чтобы поймать, когда pop () экран после нажатия кнопки назад? - PullRequest
4 голосов
/ 10 мая 2011

Когда на экране A нажимается кнопка, я нажимаю на экран B. А когда на экране B нажимается кнопка «Назад», я хочу, чтобы экран A понимал, как обновить экран. Есть ли способ справиться с этим?

Ответы [ 4 ]

2 голосов
/ 10 мая 2011

Когда появляется экран B, вызывается функция onUiEngineAttached (логическое значение) с параметром, установленным в значение false. Если экран B содержит ссылку на экран A, он может запустить любое необходимое обновление.

Другой способ - настроить собственный прослушиватель, где экран B будет предоставлять событие, а экран A будет прослушивать событие. Опять же, вы, вероятно, вызовете событие из функции onUiEngineAttached (логическое значение).

2 голосов
/ 10 мая 2011

Вы можете использовать шаблон обратного вызова. Проверьте мой другой пост для деталей. При любом событии пользовательского интерфейса на экране B (например, при нажатии кнопки) экран B запускает обратный вызов, передавая любой параметр, если это необходимо. При этом ваш Экран А сохраняет свой оригинальный / чистый интерфейс.

Вы можете обнаружить устройство «Назад» с помощью этого кода:

protected boolean keyChar(char c, int status, int time) {
    if (c == Characters.ESCAPE) {
        // .. run callback here ..
        close(); // actually close the Screen B
        return true;
    }
    return super.keyChar(c, status, time);
}
1 голос
/ 10 мая 2011

Экран B выталкивается из стека, поэтому он получает обратный вызов onUiEngineAttached ()Но вас интересует экран A, который получит другой обратный вызов - Screen.onExposed ().

0 голосов
/ 10 мая 2011

Я думаю, что это можно сделать с помощью диспетчера истории YUI.

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