在LWUIT表格和LCDUI表格之间切换

时间:2011-07-10 06:50:46

标签: java-me lwuit lcdui

我已经构建了一个包含Midlet的LWUIT UI类。我基本上使用这个midlet的主题。但是我需要跳转到包含一些LCDUI控件的另一个LCDUI表单,我需要设置LCDUI表单的显示。那么是否可以从LWUIT表单跳转到LCDUI表单并设置LCDUI表格?如果可能的话怎么办?

2 个答案:

答案 0 :(得分:5)

我使用以下代码来显示LWUIT表单和LCDUI表单。请参阅示例代码。

com.sun.lwuit.Form lwuitForm;
protected void startApp() throws MIDletStateChangeException {
    Display.init(this);
    lwuitForm = new com.sun.lwuit.Form("LWUIT Form");
    lwuitForm.addComponent(new TextField(""));

    final MIDlet midlet = this;
    final Command abtUsCmd = new Command("Next") {
        public void actionPerformed(ActionEvent evt) {
            javax.microedition.lcdui.Form  frm = new javax.microedition.lcdui.Form("LCDUI Form");
            StringItem item = new StringItem("Text", "Sample text");
            frm.append(item);

            final javax.microedition.lcdui.Command cmd = new javax.microedition.lcdui.Command("Back", javax.microedition.lcdui.Command.BACK, 0);
            CommandListener cmdLis = new CommandListener() {

                public void commandAction(javax.microedition.lcdui.Command c, Displayable d) {
                    if(c == cmd) {
                        Display.init(midlet);
                        lwuitForm.show(); // Show the LWUIT form again
                    }
                }
            };

            frm.setCommandListener(cmdLis);
            frm.addCommand(cmd);

            javax.microedition.lcdui.Display.getDisplay(midlet).setCurrent(frm); // show the LCDUI Form
        }
    };
    lwuitForm.addCommand(abtUsCmd);
    lwuitForm.show(); // Show the LWUIT Form
}

答案 1 :(得分:1)

这看起来很棘手,但是,我们可以在两者之间切换。 诀窍是当你显示LWUIT表格后,在屏幕上成功绘制后,拨打电话

  

javax.microedition.lcdui.Display.getDisplay(midlet的).getCurrent();

这使您可以显示所有LWUIT视图的Displayable,因此,您可以随时切换到LCDUI,然后使用LCDUI返回LWUIT

  

display.setCurrent

如果这对您有用,请告诉我。 感谢