티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to implement onBackPressed() in Fragments?
Fragment에서 onBackPressed()를 구현하는 방법은?
문제 내용
Is there a way in which we can implement onBackPressed()
in Android Fragment similar to the way in which we implement in Android Activity?
Android Activity에서처럼 Android Fragment에서도 onBackPressed()를 구현하는 방법이 있을까요?
As the Fragment lifecycle do not have onBackPressed()
. Is there any other alternative method to over ride onBackPressed()
in Android 3.0 fragments?
Fragment 라이프사이클에는 onBackPressed()가 없기 때문에 Android 3.0 Fragment에서 onBackPressed()를 오버라이드할 다른 대안적인 방법이 있을까요?
높은 점수를 받은 Solution
I solved in this way override onBackPressed
in the Activity. All the FragmentTransaction
are addToBackStack
before commit:
저는 Activity에서 onBackPressed를 오버라이드하는 방법으로 해결했습니다. 모든 FragmentTransaction은 commit하기 전에 addToBackStack됩니다.
@Override
public void onBackPressed() {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
//additional code
} else {
getSupportFragmentManager().popBackStack();
}
}
가장 최근 달린 Solution
In kotlin, it's way simplier.
코틀린에서는 훨씬 간단합니다.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
//
}
})
}
출처 : https://stackoverflow.com/questions/5448653/how-to-implement-onbackpressed-in-fragments
'개발 > 안드로이드' 카테고리의 다른 글
Android: 이전 액티비티로 돌아가기 (0) | 2022.12.21 |
---|---|
'package R does not exist' 오류 수정하기 (0) | 2022.12.21 |
안드로이드에서 Activity 재시작하기 (0) | 2022.12.20 |
View 타입 객체의 setTag()와 getTag() 메서드의 주요 목적 (0) | 2022.12.20 |
XML onClick를 사용하여 Fragment에서 버튼 클릭을 처리하는 방법 (0) | 2022.12.20 |