본문 바로가기
프로그래밍/Android

프래그먼트에서 뒤로가기 버튼을 눌렀을때 이벤트 처리

by Youngs_ 2021. 10. 20.
// 변경된 값이 있으면 확인시켜주는 메시지 박스를 띄워주는 코드
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

 

댓글