본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android][kotlin] Fragment간 통신 방법

by MinChan-Youn 2023. 9. 8.

안녕하세요~ 챠니입니다! :)

이번에는 Fragment간 통신하는 방법에 대해서 알아보도록 하겠습니다.

 

보통 Fragment간 통신할때에는 ViewModel LiveData를 가지고 사용할때가 있는데요

이번에는 앞서 말씀드린 방법이 아닌 Fragment 코드내에서 Observe를 통해서 결과값을 가져오는 방법에 대해서 알아보도록 하겠습니다.

 

 

 

Fragment간 통신 방법

제가 지금 개발하고있는 상황은

FramgentA -> FragmentB를 add한 상태이며, FragmentB를 종료하면서 FramgentA로 특정 결과값을 전달하고 싶은 상황입니다.

 

/** FramgnetA */
requireActivity().supportFragmentManager.setFragmentResultListener(
    "test",
    this,
    FragmentResultListener { requestKey: String, result: Bundle ->
        Log.e("YMC", "requestKey: $requestKey / result: $result")
    })
/** FramgentB */
parentFragmentManager.setFragmentResult(
    "test", // Same request key FragmentA used to register its listener
    bundleOf("key1" to "value1") // The data to be passed to FragmentA
)

 

 

위의 코드처럼 FragmentB에서 FragmentManger.setFragmentReuslt를 통해서 requestKey 및 bundle값을 설정하여 전달합니다.

 

FramgentA에서는 requestKey값을 FragmentResultListener를 통해서 값을 Observe처리 및 requestKey 및 result값을 받아와 처리하면 되겠습니다.

 

결과값은 아래와 같습니다.

FragmentReuslt

 

 

 

위 코드를 통해서 Framgent간 requestKey를 통해서 데이터를 주고받아 처리하면 되겠습니다.

 

끝!

 

 

 

 

 

 

질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

응원의 댓글은 저에게 큰 힘이 된답니다! :)

즐거운 하루되세요!

 

깃허브 보러 놀러오세요 👇 (맞팔환영)

https://github.com/younminchan

 

younminchan - Overview

안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

github.com