当在屏幕A上按下按钮时,我按下屏幕B.当在屏幕B上按下后退按钮时,我希望屏幕A理解更新屏幕。有没有办法解决这个问题?
答案 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历史记录管理器来完成。