问题描述
我创建了一个对话框createWebHistory
,并在myDialog
活动中对其进行了初始化,尽管我使用了非空声明运算符Settings.kt
。
我想要做的是使用单选按钮(浅色或深色)更改应用程序的主题。这两个单选按钮位于对话框中,即themeRadioGroup
和(!!)
是我要更改主题的活动,因此这就是为什么我要从myDialog
访问单选组的原因。
Settings.kt 活动
Settings.kt
解决方法
!!
是您 获取KotlinNullPointerException的唯一方法。异常表示您断言该项目为非null是错误的。在这种情况下,这意味着具有该ID的视图在您设置的对话框布局中不存在。
也许您要查找的视图位于活动布局中,在这种情况下,您应该调用this.findViewById
而不是myDialog.findViewById
。
否则,请仔细检查对话框的布局以确保其存在。如果您有多个版本的布局用于不同的配置,请确保它们都有一个具有该ID的视图。
您可能想研究view binding,其目的是避免此类问题。