我有SignUpActivity.kt,LoginActivity.kt和ProfileActivity.kt。在SignUpActivity.kt中,我使用Intent来启动LoginActivity.kt。在LoginActivity.kt中,我使用Intent来启动ProfileActivity.kt。
SignUpActivity.kt
...
setContentView(R.layout.activity_sign_up)
...
already_have_account_text_view.setOnClickListener {
startActivity(Intent(this, LoginActivity::class.java))
finish()
}
LoginActivity.kt
'''
...
setContentView(R.layout.activity_login)
...
login_button_login.setOnClickListener {
performLogin()
}
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val user = auth.currentUser
updateUI(user)
} else {
updateUI(null)
}
}
public override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
updateUI(currentUser)
}
private fun updateUI(currentUser: FirebaseUser?) {
if(currentUser != null) {
startActivity(Intent(this, ProfileActivity::class.java))
}else {
Toast.makeText(baseContext, "Login failed",
Toast.LENGTH_SHORT).show()
}
}
'''
程序运行正常,但在Intent期间显示了吐司消息“登录失败”。哪个不应该是那样。仅当单击登录按钮时,updateUI函数才必须执行。
如果我这样说,这是另一个问题,当用户在SingUpActivity中注册时,会将用户定向到ProfileActivity。应该是那样的。我希望用户在注册后登录。
如何不在Intent期间而是仅在用户单击登录按钮时执行updateUI函数?