當在屏幕A上按下按鈕時,我按下屏幕B.並且當在屏幕B上按下後退按鈕時,我希望屏幕A瞭解更新屏幕。有什麼辦法可以解決這個問題嗎?按下後退按鈕後彈出()屏幕時是否有任何事件需要捕捉?
回答
當彈出屏幕B時,它將調用onUiEngineAttached(boolean)函數,將參數設置爲false。如果屏幕B保持對屏幕A的引用,則可以觸發任何需要的更新。
另一種方法是設置自己的偵聽器,其中屏幕B將提供事件,屏幕A將偵聽事件。再次,您可能會從onUiEngineAttached(布爾)函數中觸發事件。
我認爲這可以使用YUI History Manager來完成。
您可以使用回調模式。詳情請查閱我的another post。在屏幕B上的任何用戶界面事件(例如按下按鈕)後,屏幕B會根據需要運行通過任何參數的回調。通過這種方式,您的屏幕A保持其原始/清潔界面。
可以檢測到設備「後退」 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);
}
我已經使用'keyChar()'。我只是將屏幕A的引用傳遞給屏幕B,並且調用了A的更新方法。它可以工作,但我不知道它是否是傳遞引用的好方法。 我真的不知道回調是做什麼的。但是我在屏幕A中使用ListField和ListCallBack。我意識到,當我按下屏幕B上的按鈕時,會調用ListCallback的'drawListRow()'方法。所以我認爲回調在這裏是有用的。我會研究它,謝謝。 – redline 2011-05-10 13:34:53
只是要清楚:我不是在談論ListCallBack。這完全是另一個概念。傳遞引用的作品好吧,它只是創建了一個過於單一的代碼,以後很難再改變。 – 2011-05-10 13:44:02
是的,我知道它不會是一個ListCallBack的課程。我知道傳遞參數的問題,我會改變它。 – redline 2011-05-10 13:57:42
B屏被彈出堆棧的,所以它會得到onUiEngineAttached()回調。但是你對屏幕A感興趣,它將得到不同的回調 - Screen.onExposed()。
謝謝,我也會嘗試這個功能。 – redline 2011-05-10 22:49:05
- 1. 如何捕捉後退按鈕事件?
- 2. 後退按鈕事件捕捉「提問」
- 3. 捕捉後退按鈕導航事件
- 4. 的PhoneGap - Android的後退按鈕 - 如何捕捉按HOLD事件
- 5. 如何在點擊後退按鈕時捕捉事件?
- 6. 有沒有辦法在javascript中捕捉後退按鈕事件?
- 7. 在webview中按下後退按鈕時的空白屏幕
- 8. 不需要後退按鈕
- 9. iPhone:捕獲後退按鈕事件
- 10. 無法捕捉Android後退按鈕事件
- 11. 當屏幕鎖定時捕獲返回按鈕按下事件
- 12. 屏幕後退按鈕上的UWP - 如何觸發系統後退事件?
- 13. NavigationController沒有彈出後退按鈕
- 14. 按下後退按鈕後需要重定向。怎麼樣?
- 15. 按下按鈕後更新屏幕
- 16. 後退按鈕從屏幕消失
- 17. JavaScript後退按鈕事件
- 18. Android - 按下後退按鈕時如何退出活動?
- 19. pushViewController後跟'後退'按鈕有時不彈出視圖
- 20. 應用按後退按鈕當按下後退按鈕
- 21. KeyDown事件按下按鈕後退出工作
- 22. 按下後退按鈕時出現Ch 0123退出
- 23. 找出用戶是否按下了uinavigationcontroller中的後退按鈕?
- 24. 後退按鈕按下
- 25. 後退按鈕被按下
- 26. 按下退出按鈕後停止GPS
- 27. Android捕獲後退按鈕
- 28. 按下後不需要按鈕上onClick事件輸入
- 29. 按下後退按鈕時傳遞BOOL
- 30. Python中是否有「後退按鈕」PyS60
謝謝,我會嘗試onEngineAttached(boolean)方法。 onExposed()的作品爲 – redline 2011-05-10 13:37:06
。我認爲這是最好的解決方案。 – redline 2011-05-19 09:36:50