в основном классе инициализируется commandListener:
public class TTalk2 extends MIDlet implements CommandListener {
private Command cmdExit;
private Command cmdLogin;
private Command cmdTryLogin;
private Command cmdBack;
private Display mydisplay;
private Form myform;
// private Form loginForm;
public TTalk2() {
cmdExit = new Command("Выход", Command.EXIT, 1);
cmdLogin = new Command("Подключиться", Command.SCREEN, 2);
cmdBack = new Command ("Назад", Command.SCREEN, 2);
cmdTryLogin = new Command ("Вперёд!", Command.SCREEN, 2);
mydisplay = Display.getDisplay(this);
}
далее в CommandAction отлавливается кнопка:
if (c == cmdLogin) {
Form loginForm = new Form ("Подключение");
TextField tfLogin = new TextField ("Логин", "", 20, TextField.ANY);
TextField tfPass = new TextField ("Пароль", "", 20, TextField.PASSWORD);
loginForm.append(tfLogin);
loginForm.append(tfPass);
loginForm.addCommand(cmdBack);
loginForm.addCommand(cmdTryLogin);
loginform.setCommandListener(this);
mydisplay.setCurrent(loginForm);
}
всё это работает, но проблема в том, что кнопка "Назад", помещаемая на динамически создаваемую форму, не работает. я так понимаю это потому, что CommandListener у формы loginForm - другой.
отсюда вопрос, как в создаваемую в CommandAction форму назначить тот же CommandListener, в котором объявлена сама CommandAction?