LWUIT Диалоговая проблема с dispose()
Я делаю диалог с командой. Эта команда должна закрыть диалоговое окно и вернуться к предыдущей форме, но она не работает должным образом. Когда я нажимаю на команду, она закрывает диалоговое окно, но форма не возвращается.
Я использую редактор ресурсов. Конечный автомат управляет навигацией приложения.
Код внутри логики команды:
dialog.dispose();
StateMachine.back();
Является dispose()
метод, который я должен использовать, чтобы закрыть мой диалог?
Спасибо за прочтение.
3 ответа
Как сказал Нирмал, избавление от диалога переходит к предыдущей форме, поэтому пока ваш вызов "back()" работает, как ожидалось, ваш вызов dispose() нарушает эту логику.
Вы можете переопределить метод postShow для формы, которую вы показываете, и обнаружить случай выхода из диалогового окна (просто включите флаг, когда нужно вернуться назад) и вызвать метод back, когда форма отображается в этом состоянии.
Не звоните StateMachine.back()
просто используйте dialog.dispose();
Есть и другое решение: попробуйте использовать protected void onShowCompleted()
метод, который вы должны реализовать в своем Form
, И объявить boolean
переменная в вашем Form
(например private boolean isDialogShown;
), затем in the constructor
вашей Form
установить эту логическую переменную в false
и непосредственно перед кодом открытия Dialog
установите его значение true
, Тогда в коде protected void onShowCompleted()
проверьте, является ли оно истинным, и если оно истинно, установите для него значение false и выполните обратное действие: backForm.showBack();