안녕하세요~ 챠니입니다! :)
이번에는 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값을 받아와 처리하면 되겠습니다.
결과값은 아래와 같습니다.
위 코드를 통해서 Framgent간 requestKey를 통해서 데이터를 주고받아 처리하면 되겠습니다.
끝!
질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!
응원의 댓글은 저에게 큰 힘이 된답니다! :)
즐거운 하루되세요!
깃허브 보러 놀러오세요 👇 (맞팔환영)
https://github.com/younminchan
'🖥 Programming > 📱 Android (Kotlin)' 카테고리의 다른 글
[Android] 머티리얼 디자인(Material Design) (0) | 2023.12.27 |
---|---|
[Andorid][kotlin] 날짜형식 변경관련(SimpleDateFormat, getTimeZone) (2) | 2023.12.05 |
[Android] SSL Error Handler 구글 스토어 대응 (2) | 2023.11.23 |
[Android][kotlin][NestJS] FCM, Firebase Background HeadUp Display not working 관련 문제 해결 (0) | 2023.10.05 |
[Android] 앱 아이콘 변경 방법 (logo, icon) (2) | 2023.08.24 |
[Android][kotlin] 이미지 1:1 비율 동일하게 맞추기 (0) | 2023.08.21 |
[Android] 다크모드 비활성화 하는 방법 (0) | 2023.08.17 |
[Android] com.google.android.gms.permission.AD_ID 이슈 해결 (7) | 2023.07.25 |