IllegalStateException textview不能在Kotlin中为null
我试图创建一个方法来更新用户界面,当活动开始通过在抽屉中设置TextView的文本。 我不断收到一个TextView不能为空的错误?
我得到的错误是非法状态exceptionuserEmail不能为空
这是更新导航抽屉中的配置文件信息的updateUI
private fun updateUI(user:FirebaseUser?) { if (user != null) { val userEmailText = findViewById(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登录活动。
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) }}
这是布局
<TextView android:id="@+id/userEmail" android:layout_width="wrap_content"
对不起,我整晚都在工作,贴出了令人生气的代码哈哈。 我更新了代码,以解决问题。 此外,我只是意识到,我命名的价值userEmailText,并试图设置
userEmail.text = user.email
代替
userEmailText.text = user.email
这将解释为什么当我println它会显示它正确的日志猫
更新! 所以我已经知道,它在第一次安装和登录时工作得很好,但由于某种原因,如果在初次登录后关闭应用程序,则在updateUI部件上崩溃。 我徘徊,如果它有什么关系,如果用户已经登录,它不能更新。 我可能会尝试一个共享的首选项,并保存用户名和电子邮件,只是擦拭注销。
- 如何强制某些方法仅对kotlin可见
- 在kotlin中找不到类?
- 合并Observables列表,并等到所有完成
- 什么是NullPointerException,如何解决?
- java.lang.VerifyError用kotlin创建一个gradle任务
- Kotlin Decompiler生成错误的代码 – 是否有可能防止?
- Kotlin&Hibernate IllegalArgumentException:无法将字符串字段Job.name设置为Job
- Android Studio – 获取活动视图实例的最佳方式
- 如何在Kotlin的Java 8 Stream上调用collect(Collectors.toList())?