在按下后退按钮后弹出()屏幕时是否有任何事件要捕获?

时间:2011-05-10 11:57:36

标签: blackberry

当在屏幕A上按下按钮时,我按下屏幕B.当在屏幕B上按下后退按钮时,我希望屏幕A理解更新屏幕。有没有办法解决这个问题?

4 个答案:

答案 0 :(得分:2)

当弹出屏幕B时,它将调用onUiEngineAttached(boolean)函数,参数设置为false。如果屏幕B保持对屏幕A的引用,则它可以触发所需的任何更新。

另一种方法是设置自己的监听器,其中屏幕B将提供事件,屏幕A将监听事件。同样,您可能会从onUiEngineAttached(boolean)函数触发事件。

答案 1 :(得分:2)

您可以使用回调模式。查看我的another post了解详情。在屏幕B上的任何UI事件(例如按下按钮)时,屏幕B运行回调,如果需要,传递任何参数。通过这种方式,您的屏幕A保持其原始/干净的界面。

您可以使用以下代码检测设备'Back'btn:

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);
}

答案 2 :(得分:1)

屏幕B从堆栈中弹出,因此它将获得onUiEngineAttached()回调。但是您对屏幕A感兴趣,它将获得不同的回调 - Screen.onExposed()。

答案 3 :(得分:-1)

我认为这可以使用YUI历史记录管理器来完成。