gpt4 book ai didi

android - Kotlin View 绑定(bind) java.lang.IllegalStateException : view must not be null inside listener

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:35 25 4
gpt4 key购买 nike

我正在使用 View Binding来自 Kotlin Android 扩展:

import kotlinx.android.synthetic.main.fragment_user_profile.*

我想在 fragment 中显示来自 Cloud Firestore 的值:

FirebaseFirestore.getInstance()
.collection("users")
.document("1")
.get()
.addOnSuccessListener { doc ->
my_text_view.text = doc["name"] as String
}

如果在接收到数据时仍显示该 fragment ,则它会起作用。但是,如果用户在接收到数据之前关闭 fragment (按回键),它就会崩溃:

java.lang.IllegalStateException: my_text_view must not be null

如何避免这种情况?


当然我可以使用 my_text_view?.text = ... 但是

  • 有一天我会忘记输入 ?

  • 没有解决 fragment 销毁后监听器还活着的问题

我想我想要类似 addOnSuccessListener(Activity, OnSuccessListener) 的东西但对于 Fragment 而不是 Activity

最佳答案

如果 fragment 仍被添加到其宿主 Activity 中,您可以检查回调

FirebaseFirestore.getInstance()
.collection("users")
.document("1")
.get()
.addOnSuccessListener { doc ->
if (isAdded) {
my_text_view.text = doc["name"] as String
}
}

但是,更好的解决方案是将您的业务逻辑移至 View 模型。

关于android - Kotlin View 绑定(bind) java.lang.IllegalStateException : view must not be null inside listener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com