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();

Другие вопросы по тегам