与dispose()的LWUIT对话问题

时间:2011-08-22 11:56:33

标签: java-me dialog lwuit lwuit-resource-editor resource-editor

我正在使用命令进行对话。此命令必须关闭对话框并返回上一个表单,但它不能按预期工作。当我按下命令时,它会关闭对话框,但表单不会再返回。

我正在使用资源编辑器。状态机控制应用程序的导航。

命令逻辑中的代码是:

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

dispose()是我必须用来关闭对话框的方法吗?

感谢阅读。

3 个答案:

答案 0 :(得分:2)

请勿使用StateMachine.back()

致电dialog.dispose();

答案 1 :(得分:2)

正如Nirmal所说,处理对话框会转到上一个表单,所以当你对“back()”的调用按预期工作时,你对dispose()的调用打破了这个逻辑。

您可以覆盖正在显示的表单的postShow方法,并检测离开对话框的情况(只需在需要返回时打开标志),并在表单显示该条件时调用back方法。

答案 2 :(得分:2)

还有另一种解决方案:尝试使用您必须在protected void onShowCompleted()中实施的Form方法。并在boolean中声明Form变量(例如private boolean isDialogShown;),然后in the constructor Form将该布尔变量设置为false,就在打开Dialog代码之前,将其值设置为true。然后在protected void onShowCompleted()测试的代码中如果为真,如果为真则将其设置为false并执行后退操作:backForm.showBack();