Переключение между формой LWUIT и формой LCDUI - PullRequest
5 голосов
/ 10 июля 2011

Я создал класс пользовательского интерфейса LWUIT, который содержит мидлет. Я в основном использую тему из этого мидлета. Но мне нужно перейти к другой форме LCDUI, содержащей элементы управления LCDUI, и мне нужно настроить отображение этой формы LCDUI. Так можно ли перейти из формы LWUIT в форму LCDUI и настроить отображение формы LCDUI? По возможности как?

Ответы [ 2 ]

5 голосов
/ 11 июля 2011

Я использовал следующий код для отображения формы 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 голос
/ 28 февраля 2013

Это выглядит сложно, но да, мы можем переключаться между ними.Хитрость в том, что когда вы показываете форму LWUIT, после того, как она была успешно нарисована на экране, сделайте вызов

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

это дает вам Displayable, содержащий все виды LWUIT, поэтому вы всегда можете переключиться на LCDUI и вернуться к LWUIT с помощью LCDUI

display.setCurrent

Дайте мне знать, если это работает для вас.Спасибо

...