Frage Umschalten zwischen LWUIT-Formular und LCDUI-Formular


Ich habe eine LWUIT UI-Klasse erstellt, die das Midlet enthält. Ich verwende im Grunde ein Thema aus diesem Midlet. Aber ich muss zu einem anderen LCDUI-Formular springen, das einige LCDUI-Steuerelemente enthält, und ich muss das LCDUI-Formular anzeigen. Also ist es möglich, vom LWUIT-Formular zum LCDUI-Formular zu springen und das LCDUI-Formular anzuzeigen? Wenn möglich wie?


5
2017-07-10 06:50


Ursprung


Antworten:


Ich verwendete folgenden Code, um das LWUIT-Formular und das LCDUI-Formular anzuzeigen. Siehe den Beispielcode.

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
}

5
2017-07-11 11:24



Das sieht kompliziert aus, aber ja, wir können zwischen beiden wechseln. Der Trick ist, wenn Sie das LWUIT-Formular zeigen, nachdem es erfolgreich auf dem Bildschirm gemalt wurde, rufen Sie an

javax.microedition.lcdui.Display.getDisplay (Midlet) .getCurrent ();

Dies gibt Ihnen das Displayable, das alle LWUIT-Ansichten enthält, so dass Sie damit immer zu LCDUI und zurück zu LWUIT mit den LCDUIs wechseln können

display.setCurrent

Lassen Sie mich wissen, ob dies für Sie funktioniert. Vielen Dank


1
2018-02-28 06:43