프로그래밍/Android
프래그먼트에서 뒤로가기 버튼을 눌렀을때 이벤트 처리
Youngs_
2021. 10. 20. 14:21
// 변경된 값이 있으면 확인시켜주는 메시지 박스를 띄워주는 코드
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
val positiveButtonClick = { dialogInterface: DialogInterface, i: Int ->
Toast.makeText(this,"확인",Toast.LENGTH_SHORT).show()
}
dialog?.setOnKeyListener { _, keyCode, event ->
Log.d("Fragment_Base backkey","테스트")
if ((keyCode == KeyEvent.KEYCODE_BACK) && (event.action == KeyEvent.ACTION_UP)) {
Toast.makeText(requireContext(),"press back button",Toast.LENGTH_SHORT).show()
dismiss()
}
true // 리턴값이 false이면 위 if문이 실행되기 전에 프래그먼트가 닫힌다.
}
override fun dismiss()
{
var check : Boolean = false
// 변경된값이 있으면 check 변수를 true로 바꿈, 해당 코드에서는 임의로 4를 넣었지만
for (i in 0 until 4)
{
if (gridWorker._arrayList.get(i).STATUS != "") {
check = true
break
}
}
if (check)
{
testButton.setOnClickListener()
{
AlertDialog.Builder(this)
.setTitle("Info")
.setMessage("Title")
.setCancelable(true)
.setPositiveButton("확인", positiveButtonClick)
.setNegativeButton("취소", null)
.create()
.show()
}
}
else
super.dismiss()
}
}
View.OnKeyListener의 Return값 True와 false의 차이는 안드로이드 공식 홈페이지에 아래와 같이 적혀있다.
대충 한국어로 번역하면 리스너가 이벤트를 사용하면 true 아니면 false라는 의미인것같은데 정확하게 어떤의미인지 인해가 안간다..
https://developer.android.com/reference/android/view/View.OnKeyListener.html