Android Catch back button in fragment

사용 언어: Kotlin 1.5.0
사용 버전: Android Studio 4.2.1

안드로이드 Catch back button in fragment를 알아보겠습니다.


back button이 눌러졌을 때, 단순히 뒤로 가는 것이 아니라 사용자가 정의한 함수를 실행하게 하려면 어떻게 해야 할까요?

이때 사용하는 것이 OnBackPressedCallback입니다.

Back button을 변경해야 하는 fragment에 OnBackPressedCallback 변수를 만듭니다.




onCreateView에 backPressCallback이 null이면 backPressCallback을 정의하도록 만듭니다.






addCallback의 중괄호 {} 안에 적힌 부분이 Back button을 눌렀을 때 작동되는 콜백 함수 코드 부분입니다.

여기서는 Toast만 실행되겠네요.





그리고 앱이 최소화되거나 fragment가 종료될 때를 생각하여 onResume과 onStop에 setBackCallback()을 제거하는 코드와 다시 연결하는 코드를 적습니다.




backPressCallback의 isEnabled가 Back button을 눌렀을 때, 우리가 적은 Callback 부분(여기서는 Toast가 있는 부분)의 작동 여부를 설정할 수 있습니다.


이렇게 설정하면, Activity의 onBackPress() method를 불러도 우리의 Callback 함수가 작동하게 됩니다.


아래는 뒤로 눌렀을 때 hello Toast가 나오는 모습입니다.




끝.



카테고리: Android


댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

tensorflow tf.random.uniform()

Android Notification with Full Screen

KiCad 시작하기 2 (PCB 만들기)

Android Minimum touch target size

Python bs4.SoupStrainer()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

음악 총보(Score), 파트보(Part)

tensorflow tf.expand_dims()