728x90
반응형
뒤로가기를 누르면 발생시킬 동작들은 onBackPress 메서드에 있습니다.
따라서 먼저 이를 override 시켜주겠습니다.
onCreate 메서드와 동일한 스코프에 정의해야함을 주의하세요.
package com.example.listview_ex
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
...
}
override fun onBackPressed() {
}
}
뒤로가기 버튼을 한 번 누르면 눌렀음을 표시할 변수 isClicked 를 만들어주겠습니다.
onBackPressed 메서드가 호출되었을 때 isClicked가 true라면 종료하고
isClicked가 false라면 isClicked를 true로 만들어준 다음 Toast 메시지를 표시하겠습니다.
만약 2초동안 다시 뒤로가기를 누르지 않는다면 isClicked를 false로 바꾸어주겠습니다.
package com.example.listview_ex
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.Toast
class MainActivity : AppCompatActivity() {
private var isClicked = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
...
}
override fun onBackPressed() {
if (isClicked) {
finish()
}
isClicked = true
Toast.makeText(
this,
"종료하려면 뒤로가기를 한 번 더 누르세요",
Toast.LENGTH_SHORT
).show()
Handler(Looper.getMainLooper()).postDelayed(Runnable {
isClicked = false
}, 2000)
}
}
'안드로이드' 카테고리의 다른 글
[안드로이드] ViewBinding 사용해보기 (0) | 2022.05.24 |
---|---|
[안드로이드] RecyclerView 사용 및 클릭 이벤트 넣어보기 (0) | 2022.05.14 |
[안드로이드] ListView 구현하기 (0) | 2022.05.11 |
[안드로이드] DataBinding 으로 TextView 업데이트 하기 (0) | 2022.05.10 |
[안드로이드] 다음 화면으로 넘어가기 & 다음 화면에게 데이터 넘겨주기 (0) | 2022.05.09 |