Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: вопрос по commandAction (JME)  (Прочитано 5781 раз)
0 Пользователей и 1 Гость смотрят эту тему.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« : 05-01-2010 17:18 » 

в основном классе инициализируется 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?
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 05-01-2010 17:26 » new

я понимаю, что можно создание формы loginForm вынести в Startup и назначить ей CommandListener там, но хотелось бы именно на этот вопрос получить ответ, для себя.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines