首页 > 解决方案 > 从片段重新创建活动得到崩溃

问题描述

我想在更改主题后重新创建活动要查看主题更改我想在片段中编写recreate()但不幸的是,程序崩溃了

这些是我的代码:

MaterialDialog(context, BottomSheet(LayoutMode.WRAP_CONTENT)).show {
                listItems(R.array.skin) { _, index, text ->
                    Prefs(context).setSkin(index)
                    activity.recreate()
                }
                positiveButton(R.string.select_theme)
                negativeButton(R.string.NegativeButton)
            }

这是我的错误:

java.lang.IllegalArgumentException:View=DecorView@3f0a3fb[MainActivity] 未附加到 android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:517) 的 android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:426) 的窗口管理器android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:126) at android.app.Dialog.dismissDialog(Dialog.java:389) at android.app.Dialog.dismiss(Dialog.java:371) at com.afollestad.materialdialogs .MaterialDialog.dismiss(MaterialDialog.kt:400) at com.afollestad.materialdialogs.bottomsheets.BottomSheet$setupBottomSheetBehavior$$inlined$apply$lambda$2.invoke(BottomSheet.kt:133) at com.afollestad.materialdialogs.bottomsheets.BottomSheet $setupBottomSheetBehavior$$inlined$apply$lambda$2。在 com.afollestad.materialdialogs.bottomsheets.UtilKt$setCallbacks$1.onStateChanged(Util.kt:59) 在 com.google.android.material.bottomsheet.BottomSheetBehavior.setStateInternal(BottomSheetBehavior.java:1089) 调用(BottomSheet.kt:46) ) 在 com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable.run(BottomSheetBehavior.java:1505) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)Choreographer$CallbackRecord.run(Choreographer.java:966)Choreographer$CallbackRecord.run(Choreographer.java:966)

标签: android

解决方案


推荐阅读