2011-08-22 31 views
1

我正在使用命令進行對話。此命令必須關閉對話框並返回到上一個窗體,但它不按預期工作。當我按下命令時,它會關閉對話框,但表單不會返回。LWUIT使用dispose的對話框問題()

我正在使用資源編輯器。狀態機控制應用程序的導航。

的command's邏輯中的代碼是:

dialog.dispose();
StateMachine.back();

dispose()我必須用關閉我的對話框的方法是什麼?

感謝您的閱讀。

+0

什麼是狀態機? – 2011-08-22 12:38:24

+0

StateMachine是從LWUIT資源編輯器生成的類。它允許管理應用程序的導航等。 – Mun0n

回答

2

正如尼爾默爾所述設置對話框去前面的表格,所以當你調用「回()」按照預期的呼叫處置工作()打破了邏輯。

您可以爲正在顯示的表單重寫postShow方法,並檢測離開對話框的情況(只需在返回時打開標誌),並在該條件下顯示錶單時調用back方法。

+0

謝謝謝。再見! – Mun0n

2

不要叫StateMachine.back()只使用dialog.dispose();

+0

我需要撥打StateMachine.back,因爲我需要回到以前的表單。我的意思是,我需要關閉對話框並在表單中返回到前一個表單。 但除此之外。當我調用dispose時,對話框關閉但命令的功能很糟糕。 – Mun0n

2

還有另一種解決方案:嘗試使用protected void onShowCompleted()方法,您必須在Form中執行該方法。而在你Form(例如private boolean isDialogShown;),那麼該布爾變量來false,剛打開Dialog的代碼之前你Form一套in the constructor其值設置爲true聲明boolean變量。然後在protected void onShowCompleted()測試的代碼中如果它是真的,並且如果它是真的,則將其設置爲false並執行後退動作:backForm.showBack();