Я новичок в kotlin, в моем приложении я хочу создать настраиваемый диалог. Я хочу показать общий диалог. когда я вызываю свой диалог,
InfoMessageDialog(activity, "Test Title", "Test desctiption of the dialog.").show();
Я получаю сообщение об ошибке
FATAL EXCEPTION: main
Process: com.bmates.testApp, PID: 4350
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
at com.bmates.testApp.Dialogs.InfoMessageDialog.onCreate(Unknown Source:4)
at android.app.Dialog.dispatchOnCreate(Dialog.java:413)
at android.app.Dialog.show(Dialog.java:308)
at com.bmates.testApp.Fragments.HomeFragment.writeReviewClick$app_debug(HomeFragment.kt:143)
at com.bmates.testApp.Fragments.HomeFragment_ViewBinding$3.doClick(HomeFragment_ViewBinding.java:61)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
at android.view.View.performClick(View.java:6320)
at android.view.View$PerformClick.run(View.java:25087)
at android.os.Handler.handleCallback(Handler.java:869)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:206)
at android.app.ActivityThread.main(ActivityThread.java:6733)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845)
Вот мой код котлина,
class InfoMessageDialog(context: Context, private var title : String, private var message : String) : Dialog(context) {
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.info_dialog)
window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
setCanceledOnTouchOutside(true)
var txtTitle = findViewById<TextView>(R.id.txtTitle)
var txtMessage = findViewById<TextView>(R.id.txtMessage)
var btnOK = findViewById<Button>(R.id.btnOK)
txtTitle.setText(title)
txtMessage.setText(message)
btnOK.setOnClickListener(View.OnClickListener {
dismiss()
})
}
}
По умолчанию параметры в Kotlin не равны нулю. Если ваш параметр может быть нулевым, вы должны добавить ? к его типу.
Согласно вашему исключению
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
savedInstanceState равен нулю. Используйте следующее, чтобы исправить это.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
...