【发布时间】:2020-10-28 15:24:42
【问题描述】:
我创建了一个对话框myDialog 并在Settings.kt 活动中对其进行了初始化,当我初始化themeRadioGroup 时出现上述错误,尽管我使用了非空断言运算符(!!) .
我想要做的是使用单选按钮(亮或暗)更改应用程序的主题。这两个单选按钮在一个对话框中,即myDialog 和Settings.kt 是我要更改主题的活动,所以我想从myDialog 访问单选组。
Settings.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)!!
//...
}
【问题讨论】:
-
我不明白这种方法... appInfoDialog 是什么?可能你的 R.id.theme_radio_grou 不在 R.layout.activity_settings 范围内,所以是 null
-
我已经更正了代码,它是
myDialog而不是appInfoDialog。 -
是的,theme_radio_group 在其他 xml 文件(对话框)中,我想在
Settings活动中访问它 -
好的,我认为 themeRadioGroup 为空,因为对话框没有膨胀,也许如果您显示对话框,那么您可以通过 id 找到您的视图
-
@ManuelMato
Dialog.setContentView立即执行膨胀。
标签: android kotlin nullpointerexception dialog radio-group