簡體   English   中英

Kotlin自定義對話框參數指定為非空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM