Почему он переходит к активности входа в систему, а не к активности панели управления, когда я закрываю и снова открываюAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему он переходит к активности входа в систему, а не к активности панели управления, когда я закрываю и снова открываю

Сообщение Anonymous »

Я создал простое приложение на Kotlin в Android Studio. все в порядке и 0 ошибок во всем приложении. но есть небольшая проблема, в которой эксперты могут мне помочь, я знаю! Итак, я просмотрел все подобные вопросы, подобные этому, во всем переполнении стека, но это совсем не то, что я хотел, и они заставили попробовать много способов, но они мне не помогли. вот что я хочу:
Я хочу, чтобы, когда я вошел в систему, используя свой адрес электронной почты и пароль, и он перешел на панель действий, приложение оставалось в DashboardActivity.kt, но когда я закрываю приложение и открываю снова это приложение выходит из системы и начинается с активности входа в систему.
вот мои коды:
ActivityMain.kt:

Код: Выделить всё

class MainActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
checkIfUserIsLoggedIn()
}
private fun checkIfUserIsLoggedIn(){
val currentUser = auth.currentUser
if (currentUser != null){
startActivity(Intent(this,DashbordActivity::class.java))
finish()
}else{
startActivity(Intent(this,LoginActivity::class.java))
finish()
}
}
}
DashboardActivity.kt:

Код: Выделить всё

class DashbordActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityDashbordBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityDashbordBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
setUserEmail()
clickListener()
}
private fun clickListener(){
binding.btnSignOut.setOnClickListener {
auth.signOut()
startActivity(Intent(this,LoginActivity::class.java))
finish()
}
}
private fun getCurrentUserEmail():String?{
return  auth.currentUser?.email
}
private fun setUserEmail(){
binding.tvUserEmail.text = "welcome " + getCurrentUserEmail()
}
}
LoginActivity.kt:

Код: Выделить всё

class LoginActivity : AppCompatActivity() {
private lateinit var binding: ActivityLoginBinding
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
clickListener()
}
private fun clickListener(){
binding.llNewUser.setOnClickListener {
startActivity(Intent(this,RegisterActivity::class.java))
finish()
}
binding.btnLogin.setOnClickListener {
getUserData()
}
}
private fun getUserData(){
val email = binding.etEmail.text.toString()
val password = binding.etPassword.text.toString()
if (email.isNotEmpty() &&  password.isNotEmpty()){
authUser(email,password)
}else{
Toast.makeText(this,"All inputs required ...",Toast.LENGTH_LONG).show()
}
}
private fun authUser(email: String, password: String){
auth.signInWithEmailAndPassword(email,password)
.addOnCompleteListener {
checkResult(it.isSuccessful)
}
}
private fun checkResult(isSuccess: Boolean){
if (isSuccess){
startActivity(Intent(this,DashbordActivity::class.java))
finish()
}else{
Toast.makeText(this,"Authentication failed ...",Toast.LENGTH_LONG).show()
}
}
}
RegisterActivity.kt:

Код: Выделить всё

class RegisterActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityRegisterBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
auth = FirebaseAuth.getInstance()
binding = ActivityRegisterBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
clickListener()
}
private fun clickListener(){
binding.btnRegister.setOnClickListener {
createUser()
}
binding.llHaveAccount.setOnClickListener {

}
}
private fun createUser(){
val email = binding.etEmail.text.toString()
val password = binding.etPassword.text.toString()
val cPassword = binding.etcPassword.text.toString()
if (email.isNotEmpty() && password.isNotEmpty() && cPassword.isNotEmpty()){
if (password == cPassword){
saveUser(email,password)

}else{
Toast.makeText(this,"Password mismatch",Toast.LENGTH_LONG).show()
}
}else{
Toast.makeText(this,"All inputs required",Toast.LENGTH_LONG).show()
}
}
private fun saveUser(email: String, password: String){
auth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener {
checkResults(it.isSuccessful)
}
}
private fun checkResults(isSuccess: Boolean){
if (isSuccess){
startActivity(Intent(this,LoginActivity::class.java))
finish()
}else{
Toast.makeText(this,"Create to create your account",Toast.LENGTH_LONG).show()
}
}
}
Я говорю еще раз: ошибок нет, и приложение работает идеально, но когда я вхожу в приложение, оно переходит в DashboardActivity, но когда я закрываю приложение и снова открываю его, оно начинается с LoginActivity. Я хочу, чтобы после входа в систему оно оставалось в DashboardActivity, когда я закрываю и снова открываю приложение.
спасибо тем, кто мне помог :)

Подробнее здесь: https://stackoverflow.com/questions/784 ... when-i-clo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»