[英]Kotlin custom dialog Parameter specified as non-null
我收到此錯誤:
引起原因:java.lang.IllegalArgumentException:指定為非null的參數為null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,參數saveInstanceState
當我嘗試在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接口時的內容,因此您需要注意使可為空的參數為非空。
我也遇到錯誤,我將Bundle
的類型更改為"Bundle?"
然后它對我有用。 在Kotlin中,您必須指定變量/參數是否為null。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
}
改變這條線
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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.