LWUIT Диалоговая проблема с dispose () - PullRequest
1 голос
/ 22 августа 2011

Я делаю диалог с командой. Эта команда должна закрыть диалоговое окно и вернуться к предыдущей форме, но она не работает должным образом. Когда я нажимаю на команду, диалоговое окно закрывается, но форма не возвращается.

Я использую редактор ресурсов. Конечный автомат управляет навигацией приложения.

Код внутри логики команды:

dialog.dispose();<br> StateMachine.back();

Является ли dispose() метод, который я должен использовать, чтобы закрыть свой диалог?

Спасибо за чтение.

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Как сказал Нирмал, удаление диалогового окна переходит на предыдущую форму, поэтому, пока ваш вызов "back ()" работает, как ожидалось, ваш вызов dispose () нарушает эту логику.

Вы можете переопределить метод postShow для формы, которую вы показываете, и обнаружить случай выхода из диалогового окна (просто включите флаг, когда вам нужно вернуться назад) и вызвать метод back, когда форма отображается в этом состоянии.

2 голосов
/ 25 октября 2011

Существует другое решение: попробуйте использовать метод protected void onShowCompleted(), который вы должны реализовать в Form.И объявите переменную boolean в вашем Form (например, private boolean isDialogShown;), затем in the constructor вашего Form установите для этой логической переменной значение false и непосредственно перед кодом открытия набора Dialogего значение до true.Затем в коде теста protected void onShowCompleted(), если оно истинно, и если оно истинно, задайте для него значение false и выполните обратное действие: backForm.showBack();

2 голосов
/ 23 августа 2011

не звоните StateMachine.back() просто используйте dialog.dispose();

...