当我使用apply
时,“ kotlin-android-extensions”的查找ID为空
private val nickDialog: NickDialog by lazy {
NickDialog(this@AccountInformationActivity).apply {
this.setOnClickConfirmListener {
account_nick.setRightText(it)
this.dismiss()
}
}
}
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void com.cnjnb.wealthstorm.view.TextLineView.setRightText(java.lang.String)'。>
但是当我使用它时,就可以了。
private val nickDialog: NickDialog by lazy {
val a = NickDialog(this@AccountInformationActivity)
a.setOnClickConfirmListener {
account_nick.setRightText(it)
a.dismiss()
}
a
}
XML: account_nick是我的XML中的view'id
其中一部分是:
<com.cnjnb.wealthstorm.view.TextLineView
android:id="@+id/account_nick"
android:layout_width="match_parent"
android:layout_height="50dp"
app:layout_constraintTop_toBottomOf="@id/account_profession"
app:leftText="nick"
app:rightText="bright" />
答案 0 :(得分:0)
您问题的根源似乎是account_nick
属性。在insinde对话框apply
中调用它时,将为其执行代码-他试图在对话框中查找该视图。在活动视图中,此处为空。
为避免这种情况,您可以将this@YourActivityClass
放在account_nick
通话之前。
private val nickDialog: NickDialog by lazy {
NickDialog(this@AccountInformationActivity).apply {
this.setOnClickConfirmListener {
this@AccountInformationActivity.account_nick.setRightText(it)
this.dismiss()
}
}
}