我已经创建了一个DialogBoxmyDialog
,并在Settings.kt
活动中对其进行了初始化,尽管我使用了非null断言运算符(!!)
,但在初始化themeRadioGroup
时会出现上述错误
我想做的是使用单选按钮(浅色或深色(更改应用程序的主题。这两个单选按钮在一个对话框中,即myDialog
和Settings.kt
是我想更改主题的活动,所以这就是我想从myDialog
访问单选组的原因。
设置.kt活动
class Settings : AppCompatActivity() {
private lateinit var themeRadioGroup : RadioGroup
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings)
val myDialog = Dialog(this)
myDialog.setContentView(R.layout.app_info_popup)
themeRadioGroup = myDialog.findViewById(R.id.theme_radio_group)!!
//...
}
!!
是获取KotlinNullPointerException的唯一方法。该异常表示您断言该项为非null是错误的。在这种情况下,这意味着在您设置的对话框布局中不存在具有该ID的视图。
也许您要查找的视图在活动布局中,在这种情况下,您应该调用this.findViewById
而不是myDialog.findViewById
。
否则,请仔细检查对话框布局以确保它在那里。如果您有不同配置的多个版本的布局,请确保它们都有一个具有该ID的视图。
您可能需要研究视图绑定,它旨在避免此类问题。