Android 当显示并取消自定义对话框时,“活动”中的Kotlin合成视图将变为null

Android 当显示并取消自定义对话框时,“活动”中的Kotlin合成视图将变为null,android,kotlin,kotlin-extension,Android,Kotlin,Kotlin Extension,我正在更新activity的onCreate方法中的一个视图,该方法使用kotlin扩展运行良好,如下所述 活动的onCreate 然后单击按钮我将显示一个执行某些操作的自定义对话框。当对话框被解除时,我用对话框发送的数据更新活动中相同的textView,但视图tvContact抛出空异常 活动的onClick onSubmitClicked是对话框中的一种抽象方法,在对话框关闭时触发 来自logcat的错误: onCreate和onClick方法来自ChangeNumberDialog: 我刚

我正在更新activity的onCreate方法中的一个视图,该方法使用kotlin扩展运行良好,如下所述

活动的onCreate

然后单击按钮我将显示一个执行某些操作的自定义对话框。当对话框被解除时,我用对话框发送的数据更新活动中相同的textView,但视图tvContact抛出空异常

活动的onClick

onSubmitClicked是对话框中的一种抽象方法,在对话框关闭时触发

来自logcat的错误:

onCreateonClick方法来自ChangeNumberDialog


我刚刚开始使用kotlin扩展,无法理解原因。感谢帮助。

您尝试访问的变量位于另一个作用域中,请尝试向视图添加显式作用域,即

this@YourActivity.tvContactNumber.text = number
override fun onClick(p0: View?) {
    when (p0?.id) {
        R.id.ivEdit -> {
            object : ChangeNumberDialog(this) {
                override fun onSubmitClicked(number: String) {
                    tvContactNumber.text =number
                }
            }.show()
        }
    }
}
    java.lang.IllegalStateException: tvContactNumber must not be null
            at com.beat.em.ui.activities.OTPVerificationActivity$onClick$1.onSubmitClicked
(OTPVerificationActivity.kt:211)
 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val view = layoutInflater.inflate(R.layout.dialog_change_number, null, false)
        setContentView(view)
        setCanceledOnTouchOutside(false)
        setCancelable(true)
        tvSubmit.setOnClickListener(this)
    }

  override fun onClick(view: View) {
    when (view.id) {
        R.id.tvSubmit -> {
            onSubmitClicked(etNumber.text.toString().trim())
            dismiss()
          }
       }
  }
this@YourActivity.tvContactNumber.text = number