【问题标题】:LWUIT Dialog problem with dispose()dispose() 的 LWUIT 对话框问题
【发布时间】:2011-11-01 02:29:42
【问题描述】:

我正在使用命令进行对话。此命令必须关闭对话框并返回到以前的表单,但它没有按预期工作。当我按下命令时,它会关闭对话框但表单不会返回。

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

命令逻辑内的代码是:

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

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

感谢阅读。

【问题讨论】:

  • StateMachine 是从 LWUIT 资源编辑器生成的类。除其他外,它还允许管理应用的导航。

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


【解决方案1】:

正如 Nirmal 所说,处理对话框会转到以前的表单,因此当您对“back()”的调用按预期工作时,对 dispose() 的调用会破坏该逻辑。​​

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

【讨论】:

    【解决方案2】:

    不要打电话给StateMachine.back(),只用dialog.dispose();

    【讨论】:

    • 我需要调用 StateMachine.back 因为我需要回到以前的表单。我的意思是,我需要关闭对话框并在表单中返回之前的表单。但除此之外。当我调用 dispose 时,对话框关闭,但命令的功能无法正常工作。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多