2011-02-26 107 views
2

在我的應用程序中,我想從另一個MainScreen打開一個MainScreen。我怎樣才能做到這一點?從另一個MainScreen打開一個MainScreen

從UiApplication我可以使用pushScreen(Screen)進入MainScreen。但是,當我嘗試從MainScreen同我得到一個JVM錯誤104

+0

JVM錯誤104正在設備或模擬器上發生?此外,您可能想解釋什麼事件導致第二個屏幕被推入UI堆棧。 –

+0

從UiAppication我顯示一個MainScreen(登錄屏幕)。驗證之後,我必須去另一個MainScreen。這個應用程序有多個屏幕。我怎樣才能從一個屏幕到另一個屏幕? – jfalexvijay

+0

我創建瞭如下類: 公共類SecondScreen擴展了MainScreen {。 。 。 。 。 。 } – jfalexvijay

回答

3

因此,讓我們說你有屏蔽2擴展MainScreen。


Screen2 s2 = new Screen2(); 
UiApplication.getUIApplication.pushScreen(s2); 

注意的是,上述代碼必須從主UI事件線程中執行。如果您正在顯示屏幕以響應UI事件,則這是默認設置。但是,如果您從後臺線程推送屏幕,則需要將呼叫編組到事件線程,如下所示:

UiApplication.getUiApplication().invokeLater(new Runnable() { 
    public void run() { 
    Screen2 s2 = new Screen2(); 
    UiApplication.getUIApplication.pushScreen(s2); 
    } 
}); 
+0

我已經用您的示例代碼進行了測試,但它適用於某些問題。如果我使用「UiApplication.getUiApplication.pushScreen(Screen);」,它不顯示第一個屏幕。它顯示最後一個屏幕。請幫我解決這個問題。 – jfalexvijay

+0

對不起,我錯過了你的回覆,直到現在。我上面做的,會顯示第二個屏幕(Screen2)。如果您已經顯示Screen2並想要返回到Screen1(第一個屏幕),則可以使用UiApplication.getUiApplication.popScreen(s1)。再次,這必須在UI線程上完成 - 因此,如果觸發它的事件不是UI事件,則需要按照上述相同的方式進行包裝。這有幫助嗎? –

+0

請檢查我的第一條評論。我遇到了一些問題。請幫我解決它。 – jfalexvijay

4
Ui.getUiEngine().pushScreen(Screen); 
+0

嗨我試着用Ui.getUiEngine()。pushScreen(screen);.但我得到以下錯誤。 (JVM錯誤104)。如何解決它。 – jfalexvijay

相關問題