Переключение между формой LWUIT и формой LCDUI

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


person Abdullah Md. Zubair    schedule 10.07.2011    source источник


Ответы (2)


Я использовал следующий код, чтобы показать как форму 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
}
person bharath    schedule 11.07.2011
comment
можно ли установить фоновую тему LWUIT и установить форму lcdui поверх нее.....??? - person Abdullah Md. Zubair; 12.07.2011
comment
AFAIK это невозможно. вы не можете использовать оба одновременно. - person bharath; 12.07.2011
comment
можем ли мы вызвать форму lwuit поверх формы lcdui? это означает, что у меня есть приложение lcdui, и я хочу просто использовать компонент (скажем, HtmlComponent) из LWUIT.. так что я не могу создать форму и показать ее из текущей формы LCDUI? - person Nezam; 15.02.2013

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

javax.microedition.lcdui.Display.getDisplay(мидлет).getCurrent();

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

display.setCurrent

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

person Kingsley Adio    schedule 28.02.2013
comment
Спасибо, это работает отлично для меня. Теперь я могу делать все что угодно с нативной реализацией платформы. - person user1048839; 27.10.2014