如何用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代码中可能缺少该问号。 Bundletypes不接受null作为合法值( 不可为空 ),并向它添加一个问号将其扩大为接受null值。

活动可以在没有保存实例状态的情况下启动,例如安装后首次启动它。

初始化CustomDialog时只需传递context 。 例如,试试这个代码:

 val cd = CustomDialog(this@YourActivity) //Assuming you are initializing it in Activity. cd.show()