Скрытие диалога со счетчиком

1

В моей деятельности я создаю собственное диалоговое окно с прямоугольником и полем редактирования. Проблема, которую я получил, - это изменение ориентации - каждый раз я получаю исключение, поэтому:

1) Я добавил android:configChanges="orientation|keyboardHidden" в свою часть активности в манифесте.

2) Реализовано onConfigurationChanged в моей активности, что более менее выглядит следующим образом:

 @Override
    public void onConfigurationChange(Configuration newConfiguration) {
    super.onConfigurationChange(newConfiguration);
    if (mMyDialog != null && mMyDialog.isShowing() ) {
    mMyDialog.dismiss();
    }

В большинстве случаев он работает нормально, но иногда, когда я запускаю свой диалог, активируйте Spinner (запуск Spinners Pop-Up) и измените ориентацию, которую я получил:

ОШИБКА/AndroidRuntime (2928): при android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:385) ERROR/AndroidRuntime (2928): при android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:230) ERROR/AndroidRuntime (2928): при android.view.Window $LocalWindowManager.removeView(Window.java:432) ERROR/AndroidRuntime (2928): при android.app.Dialog.dismissDialog(Dialog.java:290) ERROR/AndroidRuntime (2928): при android.app.Dialog.access $000 (Dialog.java:78) ERROR/AndroidRuntime (2928): при android.app.Dialog $1.run(Dialog.java:123) ERROR/AndroidRuntime (2928): при android.app.Dialog.dismiss(Dialog.java:280)

Итак, похоже, что диалог не уволен вовремя? Может быть, я должен переопределить метод reject() в классе MyDialog и убедиться, что все элементы управления "закрыты"? Мой класс диалога создается следующим образом:

mMyDialog = new MyDialog(this);
mMyDialog.show();
Теги:
view
crash
dialog

3 ответа

0

У меня была идея чтобы предотвратить изменения ориентации, когда отображается диалог со счетчиком, но обнаружил, что нет надежного способа для этого. Лучшее решение, которое я нашел, - заменить spinner кнопкой. В моем ответе на самом деле показано, как восстановить меню spinner после изменения ориентации, но вы можете легко не делать этого.

0

с mMyDialog.hide(), оно равнозначно.

Я также добавляю, что конструктор this в MyDialog - это объект Context.

0

Может быть, вы можете попробовать mMyDialog.hide(); функция класса диалога

Ещё вопросы

Сообщество Overcoder
Наверх
Меню