我正在研究J2ME应用程序。我想在表单中显示警报并显示另一个类的另一个表单。我尝试了以下方法来显示警报。
public void showMsg()
{
Alert success = new Alert("Data Not found.");
//success.setImage(img2);
success.addCommand(new Command("Ok", Command.OK, 0));
success.addCommand(new Command("Cancel", Command.CANCEL, 0));
success.setCommandListener(this);
success.setTimeout(Alert.FOREVER);
Display.getDisplay(parent).setCurrent(success, chapterForm);
}
显示警告后,我跳转到另一种形式:
Display.getDisplay(parent).setCurrent(welcomeForm);
当我运行它时,它不显示警报但跳转到welComeForm。那么,我怎样才能显示警报然后跳转到另一种形式。
答案 0 :(得分:1)
警报不会自动推进到chapterForm
,因为您已使用this
替换了警报上的默认侦听器。使用CommandListener接口中的commandAction()事件从警报中获取“确定”或“取消”。然后,您可以使用Display.setCurrent(Displayable d)
来显示要显示的表单。
答案 1 :(得分:1)
Display.getDisplay(parent).setCurrent(welcomeForm)
很可能是不显示警报但跳转到welComeForm 的原因。准确地说,它(设备)可能会暂时显示警报,但只要您调用setCurrent(welcomeForm)
,它就会被welcomeForm暂时覆盖。
如果您希望welcomeForm
被来自警报的命令显示,只需
从现在的位置
setCurrent(welcomeForm)
将已删除的代码插入this.commandAction
方法(this
是您在代码exerpt中使用的命令侦听器)
答案 2 :(得分:0)
一个漂亮的解决方案是在将当前显示设置为Alert后启动一个新线程,在这个新线程中你可以执行Thread.sleep(2000);为了等待,之后你会显示新表格。