【问题标题】:Kotlin custom dialog Parameter specified as non-nullKotlin 自定义对话框参数指定为非空
【发布时间】:2017-11-20 02:40:03
【问题描述】:

我收到了这个错误:

引起:java.lang.IllegalArgumentException:参数指定为 非空为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数 保存实例状态

当我试图在 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()

请帮忙

【问题讨论】:

    标签: android kotlin kotlin-android-extensions


    【解决方案1】:

    override fun onCreate(savedInstanceState: Bundle) {

    因为savedInstanceState 可以是null,所以类型必须是Bundle?

    当您指定参数不为 null 时,kotlin 会在所有情况下生成检查。这包括在实现 Java 接口时,因此您需要小心将可空参数设为非空。

    【讨论】:

    • 太喜欢你了!!你拯救了我的一天。
    • 谢谢! Android Studio 中内置的 Java 到 Kotlin 转换器将其转换为不可为空的 Bundle,这很有效。
    【解决方案2】:

    我也遇到了错误,我将类型 Bundle 更改为 "Bundle?"。然后它对我有用。在 Kotlin 中,您必须指定变量/参数是否为空。

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        init()
    }
    

    【讨论】:

      【解决方案3】:

      改变这一行

        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");
      } 
      

      【讨论】:

      • 它还在崩溃:/
      猜你喜欢
      • 1970-01-01
      • 2020-05-06
      • 2021-12-09
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 2019-06-03
      相关资源
      最近更新 更多