当前位置: 首页 > 知识库问答 >
问题:

Kotlin视图绑定java.lang.IllegalStateException:监听器内部的视图不能为空

吴缪文
2023-03-14

我正在使用Kotlin Android Extensions中的视图绑定:

import kotlinx.android.synthetic.main.fragment_user_profile.*
FirebaseFirestore.getInstance()
    .collection("users")
    .document("1")
    .get()
    .addOnSuccessListener { doc ->
        my_text_view.text = doc["name"] as String
    }
java.lang.IllegalStateException: my_text_view must not be null

我该如何避免这种情况?

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

>

  • 有一天我会忘记把

  • 共有1个答案

    张积厚
    2023-03-14

    如果片段仍添加到其主机活动中,则可以签入回调,

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

    但是,更好的解决方案是将业务逻辑移动到ViewModel。

     类似资料:
    • 我一直在关注YT视频制作测验应用程序,但最终我在绑定时遇到了这个错误: “kotlin android extensions”Gradle插件已被弃用 请使用本迁移指南(https://goo.gle/kotlin-android-extensions-deprecation)开始使用视图绑定的步骤(https://developer.android.com/topic/libraries/vie

    • 如何在回收者视图中收听触摸事件?我已经为视图持有者实现了click listener,但它可以在整个视图上工作。我在每个视图支架中都有一个图像视图,当用户单击图像视图时,我需要执行一个操作。 当前视图持有者代码。

    • 我正在尝试在Kotlin和碎片中做视图绑定。 但是当它有很多对象的时候。我需要给它下个定义。所以我不得不看: Kotlin Android视图绑定:findViewById vs Butternife vs Kotlin Android扩展 和 但是我在Android Studio中找不到 我可以在我的程序中做什么?

    • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:

    • 英文原文:http://emberjs.com/guides/views/built-in-views/ Ember中定义了一套用于构建一些非常基础的控件的视图,比如文本输入框、勾选框和选择列表。 这些视图有: Ember.Checkbox 1 2 3 4 <label> {{view Ember.Checkbox checked=model.isDone}} {{model.title

    • 我正试图找出在Kotlin中进行Android视图绑定的最佳方法。似乎有几个选择: 我对java中的findViewById和Butternife非常熟悉,但是在Kotlin中,每种视图绑定方法的优缺点是什么? Kotlin Android扩展能很好地使用RecycerView+ViewHolder模式吗? 另外,Kotlin Android扩展如何通过处理嵌套视图的视图绑定?