Иллюстрированный самоучитель по программированию мобильных телефонов

Переход с экрана на экран

Позаботившись о переходе на экран представленный классом Alert и о выходе из приложения, можно создать код для объекта Alert, который впоследствии можно присоединить к текущему экрану. Класс Alert несколько специфичен, это вам станет понятно как только вы откроете окно, отвечающее за отображение объекта. Попробуйте после компиляции рассмотренного примера сделать для Alert команду Выход, и посмотрите, что получится. Теперь соединим рассмотренный код в одно целое, получив готовую программу, представленную в листинге 5.2.

Листинг 5.2. Переход с экрана на экран.

// подключаем пакеты
import javax.microedition.midlet.*;
import javax.microedition..lcdui. *;
// создаем класс Perexod
public class Perexod extends MIDlet implements
CommandListener
{
// команда выход из программы
private Command exitMidlet;
// команда перехода в программе
private Command perexodTextBox;
private Command perexodList;
private Command perexodAlert;
// дисплей
private Display mydisplay;
// конструктор класса
Perexod public Perexod()
{
mydisplay = Display.getDisplay(this);
// выход из приложения
exitMidlet = new Command("Выход", Command.EXIT, 1);
// переход
TextBox
perexodTextBox = new Command("Перейти", Command.SCREEN, 2);
}
// входная точка всей программы
public void startApp()
{
// создаем объект класса Form
Form myform = new Form("Это объект класса Form");
// добавляем команду выхода из программы
myform.addCommandfexitMidlet);
// добавляем команду перехода в TextBox
myform.addCommand(perexodTextBox);
// устанавливаем обработчик событий для команд объекта
класса Form
myform.setCommandListener(this);
// отражаем текущий экран
mydisplay.setCurrent(myform);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
// обработчик событий в программе
public void commandAction(Command c, Displayable d)
{
// обработка команды выход
if (с == exitMidlet)
{
destroyApp(false);
notifyDestroyed();
}
// обработка команды перехода в TextBox
if (с == perexodTextBox)
{
TextBox tb = new TextBox("TextBox", "Текст", 256, 0);
perexodList = new Command("Перейти",Coramand.SCREEN, 2);
tb.addCommand(exitMidlet);
tb.addCommand(perexodList);
tb.setCommandListener(this);
Display.getDisplay(this).setCurrent(tb);
}
// обработка команды перехода в List
if (с == perexodList)
{
List mylist = new List("List", List.IMPLICIT);
perexodAlert = new Command("Перейти", Command.SCREEN, 2);
mylist.addCommand(exitMidlet);
mylist.addCommand(perexodAlert);
mylist.setCommandListener(this);
Display.getDisplay(this).setCurrent(mylist);
}
// обработка команды перехода в Alert
if (с == perexodAlert)
{
Alert myalert = new Alert("Alert","Текст",null,null);
Display.getDisplay(this).setCurrent(myalert);
}
}
}

После компиляции примера пройдите по всей программе и убедитесь, что вам понятна общая идея и принцип работы смены экранов, на которых строятся все приложения в Java 2 ME.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.