Android Project/Extras..
[Android/Kotlin] 커뮤니티앱(11) - 로그아웃
juwon2
2024. 1. 28. 14:27
홈화면에서 상단에있는 햄버거바 버튼을 누르면 로그아웃을 할수있는 창이 나타나고, 로그아웃 버튼을 누르면 로그아웃이 완료되면서 introActivity로 이동할수있게 만들어볼것이다
먼저 로그아웃창과 레이아웃을 만들어준다
레이아웃은 완전 간단하게 로그아웃버튼만 가운데에 배치해줬다
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".setting.SettingActivity">
<Button
android:id="@+id/logoutBtn"
android:text="로그아웃"
android:background="@drawable/background_radius_yellow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_setiing.xml
이제 이 버튼을 클릭했을때 로그아웃이 되고, IntroActivity로 이동하도록 해준다
근데 뒤로가기를 누르면 기존 엑티비티가 나오는 문제가 발생하기 때문에 기존의 엑티비티들을 지워주는 코드도 작성해준다.
package com.example.mysololife.setting
class SettingActivity : AppCompatActivity() {
private lateinit var auth : FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting)
auth = Firebase.auth
val loginButton : Button = findViewById(R.id.logoutBtn)
// logoutBtn클릭했을때
loginButton.setOnClickListener {
// 로그아웃
auth.signOut()
Toast.makeText(this, "로그아웃 되었습니다", Toast.LENGTH_SHORT).show()
// IntroActivity로 이동
val intent = Intent(this, IntroActivity::class.java)
// 기존엑티비티 삭제(뒤로가기 눌렀을때 기존엑티비티로 안가도록)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
}
}
}
SettingActivity.kt
햄버거바 클릭하면 로그아웃화면창으로 이동하도록해주는 코드를 아직 안써줬기때문에 MainActivity로 돌아가서 써준다
package com.example.mysololife
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// settingBtn 클릭시 SettingActivity로 이동
findViewById<ImageView>(R.id.settingBtn).setOnClickListener {
val intent = Intent(this, SettingActivity::class.java)
startActivity(intent)
}
}
}
MainActivity.kt
이렇게 해주면 로그아웃이 잘 되는것을 확인할수있다