Kotlin 自定义对话框参数指定为非空
Kotlin custom dialog Parameter specified as non-null
我收到这个错误:
Caused by: java.lang.IllegalArgumentException: Parameter specified as
non-null is null: method
kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter
savedInstanceState
当我尝试在 Kotlin 中扩充自定义对话框时
,我在对话框的 super.onCreate 行收到上面写的错误。
对话代码是:
class Custom_Dialog_Exit_App(var activity: Activity)// TODO Auto-generated constructor stub
: Dialog(activity, R.style.full_screen_dialog) {
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.custom_dialog_exit_app)
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
initView()
}
fun initView() {
initClicks()
}
fun initClicks() {
}
}
初始化是:
val omer = Custom_Dialog_Exit_App(this@MainActivity)
omer.show()
请帮忙
override fun onCreate(savedInstanceState: Bundle) {
因为 savedInstanceState
可以是 null
类型必须是 Bundle?
.
当您指定参数不为 null 时,kotlin 会在所有情况下生成检查。这包括在实现 Java 接口时,因此您需要小心将可空参数设置为非空。
更改此行
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
至
if(activity.window != null) {
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
} else {
Log.e(TAG, "Window is null");
}
我也遇到了错误,我将类型Bundle
更改为"Bundle?"
。然后它对我有用。在 Kotlin 中,您必须指定 variable/parameter 是否为 null。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
}
我收到这个错误:
Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
当我尝试在 Kotlin 中扩充自定义对话框时 ,我在对话框的 super.onCreate 行收到上面写的错误。
对话代码是:
class Custom_Dialog_Exit_App(var activity: Activity)// TODO Auto-generated constructor stub
: Dialog(activity, R.style.full_screen_dialog) {
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.custom_dialog_exit_app)
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
initView()
}
fun initView() {
initClicks()
}
fun initClicks() {
}
}
初始化是:
val omer = Custom_Dialog_Exit_App(this@MainActivity)
omer.show()
请帮忙
override fun onCreate(savedInstanceState: Bundle) {
因为 savedInstanceState
可以是 null
类型必须是 Bundle?
.
当您指定参数不为 null 时,kotlin 会在所有情况下生成检查。这包括在实现 Java 接口时,因此您需要小心将可空参数设置为非空。
更改此行
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
至
if(activity.window != null) {
activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
} else {
Log.e(TAG, "Window is null");
}
我也遇到了错误,我将类型Bundle
更改为"Bundle?"
。然后它对我有用。在 Kotlin 中,您必须指定 variable/parameter 是否为 null。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
}