투케이2K

722. (Android/Java) Fragment 프레그먼트 클래스에서 OnBackPressedCallback 이벤트 등록 및 뒤로가기 이벤트 감지 본문

Android

722. (Android/Java) Fragment 프레그먼트 클래스에서 OnBackPressedCallback 이벤트 등록 및 뒤로가기 이벤트 감지

투케이2K 2024. 1. 17. 20:18
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

public class MainFragment extends Fragment {

    private MainViewModel mViewModel;

    public static MainFragment newInstance() {
        return new MainFragment();
    }

    @Override
    public void onAttach(@NonNull Context context){
        super.onAttach(context);
        Log.e("MainFragment", "[onAttach] : Start");

        // [callBack 등록]
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
    }


    // [OnBackPressedCallback 이벤트 정의]
    OnBackPressedCallback callback = new OnBackPressedCallback(true) {
        @Override
        public void handleOnBackPressed() {
            Log.e("MainFragment", "[handleOnBackPressed] : 프레그먼트 뒤로가기 수행");
        }
    };


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mViewModel = new ViewModelProvider(this).get(MainViewModel.class);
        // TODO: Use the ViewModel
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_main, container, false);
    }

}
 

[결과 출력]

 

E/MainFragment: [handleOnBackPressed] : 프레그먼트 뒤로가기 수행

 

반응형
Comments