android - 如何在登录活动中添加“记住我”?
问题描述
如果用户已经登录,我有登录活动和 updateUI 功能,允许您不登录,但我需要添加“记住我”复选框,允许您选择是否记住会话。我怎样才能做到这一点?
登录活动代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
initDatabase()
updateUI()
loginUser()
binding.btnSignup.setOnClickListener {
val intent = Intent(this, Signup::class.java)
startActivity(intent)
finish()
}
binding.btnContinueWithoutLogin.setOnClickListener {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
}
}
private fun loginUser() {
binding.btnLogin.setOnClickListener {
val email = binding.etEmail.text.toString().trim()
val password = binding.etPassword.text.toString().trim()
if (email.isEmpty()) {
binding.etEmail.error = "Field can not be empty"
binding.etEmail.requestFocus()
return@setOnClickListener
}
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
binding.etEmail.error = "Provide valid email"
binding.etEmail.requestFocus()
return@setOnClickListener
}
if (password.isEmpty()) {
binding.etPassword.error = "Field can not be empty"
binding.etPassword.requestFocus()
return@setOnClickListener
}
if (password.length < 8) {
binding.etPassword.error = "Minimal password length should be 8"
binding.etPassword.requestFocus()
return@setOnClickListener
}
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener {
if (it.isSuccessful) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
} else {
Toast.makeText(this, "Login Failed", Toast.LENGTH_LONG).show()
}
}
}
}
private fun updateUI() {
val currentUser = mAuth.currentUser
if (currentUser != null) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
}
}
private fun initDatabase()
{
mAuth = FirebaseAuth.getInstance()
}
主要活动代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
mAuth = FirebaseAuth.getInstance()
binding.btnLogout.setOnClickListener {
mAuth.signOut()
val intent = Intent(this, Login::class.java)
startActivity(intent)
finish()
}
}
我尝试使用 Sharedpreferences,但不知何故没有成功
解决方案
推荐阅读
- android - 为什么我的警报管理器在错误的时间工作
- php - 在 WooCommerce 中设置最低订单金额
- pandas - 对于 pandas python 程序中的所有问题,我收到相同的错误“模块日期时间没有属性日期”
- ios - 如何使用 Swift 使用 API 响应
- nginx - fetch 404 while loading jpg Failed to load resource: the server responded with a status of 404 ()
- python - Django 模板上下文不会呈现
- android - 如果 sqflite 颤振中存在,则删除表并重新创建
- wordpress - 我如何实现 Wordpress 到 Moodle SSO
- c# - 加载 RTF 文件后 WPF RichTextBox 不滚动
- r - 为什么我用 nls 得到二元运算符的非数字参数?