java - IllegalStateException textview 在 Kotlin 中不能为 null

标签 java android kotlin

我正在尝试创建一种在 Activity 启动时通过在抽屉导航中设置 TextView 的文本来更新 UI 的方法。我一直收到 TextView 不能为空的错误?

我得到的错误是非法状态异常 userEmail 不能为空

这是应该更新抽屉导航中的个人资料信息的 updateUI

private fun updateUI(user:FirebaseUser?) {
   if (user != null) {
   val userEmailText = findViewById<TextView>(R.id.userEmail)
   userEmail.text = user.email
   val errorTriage : String? = user.email
   println("User Email is ="+errorTriage)
   } else {
val userEmailText: TextView = findViewById(R.id.userEmail)

   userEmailText.text = "Johndoe@someemail.com"
   userNameText.text = "John Doe"

   }}

如果用户已登录,则这是对 UpdateUI 的调用,如果是的话,请更新抽屉导航中的配置文件数据,这就是问题所在。如果没有,它将启动 FirebaseUI 登录 Activity 。

override fun onStart() {
    super.onStart()
    //Checks to see if user is already signed in
    if (mAuth.currentUser != null) {
        updateUI(mAuth.currentUser)
   } else {
        //user is not signed in
        startActivityForResult(
  AuthUI.getInstance().createSignInIntentBuilder().build(),
                RC_SIGN_IN)
   }}

这是布局

 <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
        app:srcCompat="@mipmap/ic_launcher_round" />

    <TextView
        android:id="@+id/userName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
     android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="Android Studio"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
  <TextView
        android:id="@+id/userEmail"
        android:layout_width="wrap_content"

最佳答案

抱歉,我整晚都在研究这个问题,并发布了令人生气的代码,哈哈。我将代码更新为问题所在。另外,我刚刚意识到我将值命名为 userEmailText 并尝试设置

userEmail.text = user.email

而不是

userEmailText.text = user.email

这可以解释为什么当我执行 println 时它会正确显示 log cat

关于java - IllegalStateException textview 在 Kotlin 中不能为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47610818/

相关文章:

java - 为什么我的代码不返回 N 的最大值?

java - Parceler:无法找到 ForeignCollection 类型的读/写生成器

android - 虚拟键盘可见时无法查看 First Edittext

java - 通用 OR 而不是 AND <T extends Number |字符序列>

导入导航撰写时,Android Jetpack Compose 崩溃

kotlin - 在 Kotlin 协程中挂起 IO 密集型和 CPU 密集型函数

Java 和 Unix 佐证

java - 外部实体更改后索引不更新

java - 从另一个方法更改对象值

kotlin - 什么代表 Kotlin 中的 arrayOfNulls?