Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Навигация по экранам, вперед-назад 
:(
    Опции темы
Anton Vatchenko
Дата 12.10.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



У меня хитрая навигация между меню, причем при выборе одного пункта меню - другое меню должно сразу генерироваться. Также из следующего меню можно вернуться в предыдущее. Как реализовать, чтобы не терялась память?


--------------------
user posted image
PM MAIL   Вверх
batigoal
Дата 12.10.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Не понял. Разве меню создается заново при новом обращении?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Anton Vatchenko
Дата 12.10.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



Lamer George
Так я хочу, чтобы оно создавалось. Например, в одном меню выбираешь сложность игры (слабак, норм, сложн), и в следующем меню выбираешь карту для "играния". Как такое реализовать??? Допустим, все реализуется формами, или списками...
Добавлено @ 12:12
Пусть в зависимости от сложности будут соответствующие карты...
Добавлено @ 12:14
... и без преждевременного создания всех меню (их может быть очень много, и активизация трех из сотни созданных - тупо)


--------------------
user posted image
PM MAIL   Вверх
javastic
Дата 12.10.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Я делал что-то похожее. Проверял состояние спец. атрибута, затем убивал все созданные команды и создавал на основании этого спец. атрибута нужные команды.
Да и ещё, нужно ещё из прослушиваемого объекта удалять команды (removeCommand) перед добавлением новых. Я делал так. Может кто знает способ попроще.

Это сообщение отредактировал(а) javastic - 12.10.2005, 13:11


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Dancer
Дата 13.10.2005, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Если у тебя одно меню сложность, а другое меню выбор карты - то их думаю лучше держать статически, и не пересоздавать каждый раз. Все остальные менюхи которые появляются может быть и имеет смысл пересоздавать, но вот какие-то конкретные списки (сложность, MainMenu, Help, About etc.) лучше создавать один раз при инициализации твоего приложения и потом в нужный момент их только показывать на экране.
Ты хочешь в зависимости от сложности иметь разный набор карт, но ведь названия этих карт ты будешь где-то хранить.
Пусть у тебя уже есть
Код

  String [] [] mapsOfLevel = {
      {"1","2","3"}, //easyLevel
      {"10","20","30"}, //  hardLevel  
      {"10","200","300"} //  expertLevel
  };
  
  int playerLevel = 0; // лучше организовать какой нить класс менеджер, в через который мы сможем получать текущие 
                                 // состояния (значения) всех значимых (условно назовём их глобалными) наших переменных
  // из этот класса менеджера будем получать текущий выбранный уровень игроком 
  // что-то вроде  playerLevel = GameManager.getPlayerLevel()

  Form playerMaps = new Form("Game's Maps");


в принципе, я не знаю как у тебя будет логика выстроена при выборе, но пусть будет, что каждый уровень только свои карты имеет и не может иметь карты из других уровней (для простоты)
Организуем совой метод show() при вызове которого будет у нас отрисовываться наша формочка.

Код

  public void show() {
    deleteAll();
    for(int i=0; i<mapsOfLevel[playerLevel].length; i++ ) {
        append(mapsOfLevel[playerLever][i]);
        append("\n"); //так как это у тебя форма, в данном случае конечно лучше было бы использовать List
    }
     disp.setCurrent(this); // disp либо в GameManager хранишь, либо ещё как то. disp = Display.getDisplay(MIDlet mid);
     // конкретно для меню выбора карт нужно думаю всего две кнопочки (BACK, SELECT)
     // их думаю можно сразу в конструкторе добавлять и не мучаться
  }



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
W0LF
Дата 9.2.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



а можно просто реализовать интерфейс GuiListener:
Код

public interface GuiListener{
    
    public void showNotify();

    public void hideNotify();

}


ну а в самом мидлете так:
Код

Displayable currentDisplayable;
public static synchronized void setDisplay(Displayable d){
        if(currentDisplayable instanceof GuiListener) 
            ((GuiListener)currentDisplayable).hideNotify();
        currentDisplayable = d;
        if(d instanceof GuiListener)
            ((GuiListener)d).showNotify();

        if(currentDisplayable == d){
            if(currentDisplayable instanceof Form){
                ((Form)currentDisplayable).setItemStateListener(null);
            }
            display.setCurrent(d);
            if(d instanceof Form){
                ((Form)d).setItemStateListener(midlet);
            }
        }

    } 


Этот метод был разработан моим наставником smile, ник которого wInux
Спасибо, Дим ты меня многому научил.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.