2011-08-22 32 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();