Получение исключения nullpointer при переключении отображаемых в J2ME - PullRequest
0 голосов
/ 23 ноября 2010

Итак, я добавляю форму в свое приложение J2ME, но всегда получаю исключение nullpointer при попытке вернуться на главный экран.Это, кажется, не происходит, когда я использую холст, я могу успешно вернуться в главное меню.Что дает?

Запуск формы из основного мидлета

quickAlarm = new QuickAlarm("Set quick alarm",this);
                display.setCurrent(quickAlarm);

Конструктор в QuickAlarm

public QuickAlarm(String title,HelloMIDlet midlet) {
      super(title);
      df = new DateField("Alarm time",DateField.TIME);
      this.append(df);
      this.midlet = midlet;

      backCommand = new Command("Back",Command.BACK,0);
      saveCommand = new Command("Save",Command.OK,1);

      this.addCommand(backCommand);
      this.addCommand(saveCommand);
    }

Возвращение в главное меню из QuickAlarm,

this.midlet.leaveCanvas();

Это в основном мидлете

 public void leaveCanvas() {
      display.setCurrent(startOptions);
 }

Полная ошибка

TRACE: <at java.lang.NullPointerException:   0>, Exception caught in Display class
java.lang.NullPointerException:   0
        at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46
        at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74
        at com.sun.midp.chameleon.layers.SoftButtonLayer.soft1(), bci=37
        at com.sun.midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=36
        at com.sun.midp.chameleon.CWindow.keyInput(), bci=38
        at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
        at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
        at com.sun.midp.events.EventQueue.run(), bci=179
        at java.lang.Thread.run(Thread.java:637)

Ответы [ 2 ]

0 голосов
/ 24 ноября 2010

Определите, что такое «quickAlarm» и «startOptions». Вы должны иметь возможность передавать объект «Displayable» в методе «display.setCurrent ()». Так что проверьте его на «quickAlarm» и «startOptions», они являются подклассом "javax.microedition.lcdui.Displayable"

0 голосов
/ 23 ноября 2010

Не обращайте внимания, я просто забыл настроить слушатель команд.

...