MGDC    

Вернуться   MGDC > Development > Programming
Справка Пользователи Календарь Все разделы прочитаны

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 12.10.2005, 15:55
beerpot beerpot вне форума
Junior Member
 
Регистрация: 17.09.2005
Сообщений: 7
По умолчанию Как из canvas'a завершить MIDlet?

Как из canvas'a дать MIDlet'у команду на завершение.
Ругается - говорит метод destroyApp - private,
хотя он public.

Если в мидлет добавляю метод - например Exit(), что бы он вызвал destroyApp, канвас его не видит, хотя тоже public
Ответить с цитированием

Реклама
  #2  
Старый 12.10.2005, 16:24
Agо
Guest
 
Сообщений: n/a
По умолчанию

Он не public, и не private, а _protected abstract void_
это значит, что ты обязан определить его в своем мидлете.
Так как он не статичный, тебе надо иметь экземпляр класса своего мидлета, для обращения к destroyApp. Тогда обращаться из канваса к этому методу надо будет так:
your_midlet_instance.destroyApp(false);
и потом вызвать
your_midlet_instance.notifyDestroyed();
Ответить с цитированием
  #3  
Старый 12.10.2005, 18:27
beerpot beerpot вне форума
Junior Member
 
Регистрация: 17.09.2005
Сообщений: 7
По умолчанию Ago - не понятно

Не совсем понятно.

В моем мидлете я создаю канвас:

public class mp extends MIDlet
{
public mpcanv mpc; //Канвас
..........
public void startApp()
{
mpc=new mpcanv(this); // и передаю мидлет

}

..........

public void destroyApp(boolean unconditional) // public!!!!
{
mpc=null;
myDisplay.setCurrent(null);
notifyDestroyed();
}

В канвасе:


public class mpcanv extends Canvas implements CommandListener
{
public MIDlet m;
public mpcanv(MIDlet m)
{
setCommandListener(this);
addCommand(new Command("Exit", Command.EXIT, 1));
}

..........

public void commandAction(Command command, Displayable displayable)
{
if (command.getLabel()=="Exit")
{
m.destroyApp(true); // а тут говорит protected
}
}
}

Я так смутно догадываюсь - в канвасе надо написать MIDlet m2=new m()?
Но только для выхода создавать еще один экземпляр мидлета?
Или добавлять в канвас команду на выход из мидлета?
Так я могу, но ведь Sun One Studio сама добавляет этот код в канвас.
Ответить с цитированием
  #4  
Старый 12.10.2005, 18:48
Agо
Guest
 
Сообщений: n/a
По умолчанию

Ошибка здесь -
public MIDlet m;

надо писать

public mp m;

и с точки зрения хорошего стиля, названия классов начинай с большой буквы.
Ответить с цитированием
  #5  
Старый 12.10.2005, 23:54
beerpot beerpot вне форума
Junior Member
 
Регистрация: 17.09.2005
Сообщений: 7
По умолчанию Ago - спасибо

Спасибо.
Ответить с цитированием

Реклама
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Applet и Midlet DFT Programming 3 17.11.2005 19:49
Как запаузить midlet при входящем звонке на Siemens 65 evdokimov J2ME 0 05.07.2005 18:31
uk.midlet.com Mihalych J2ME 9 29.06.2004 14:38


Часовой пояс GMT +4, время: 11:05.


vBulletin® Version 3.6.10.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Перевод: zCarot