如何用Kotlin调用自定义对话框? 将java转换为kotlin后失败
我试图调用一个自定义对话框,但在这一行崩溃的应用程序:
cd.show()
这就是我所说的:
val cd = CustomDialog(this, applicationContext) cd.show()
这是错误的:
java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState
我遵循这个例子 ,它在java中工作,但转换成kotlin后失败
从你的链接的例子:
@Override protected void onCreate(Bundle savedInstanceState) {
在Kotlin,这应该成为
override fun onCreate(savedInstanceState: Bundle?) {
请注意问号,根据您的错误信息判断,您的Kotlin代码中可能缺少该问号。 Bundle
types不接受null
作为合法值( 不可为空 ),并向它添加一个问号将其扩大为接受null
值。
活动可以在没有保存实例状态的情况下启动,例如安装后首次启动它。
初始化CustomDialog
时只需传递context
。 例如,试试这个代码:
val cd = CustomDialog(this@YourActivity) //Assuming you are initializing it in Activity. cd.show()