반응형
프래그먼트 데이터 전달
전달 할 프레레그먼트에서의 데이터 저장
- 주의사항 : 번들(Bundle)과 setFragmentResult 메소드에 모두 키 값과 데이터를 입력하는 것이지만,
setFragmentResult의 리퀘스트 키 값은 이미 키와 밸류가 설정된 번들을 넣는다.
// 번들 객체 생성
Bundle result = new Bundle();
// 번들 키 값과 전달 할 데이터 입력
result.putString("bundleKey", "result");
// setFragmentResult 메소드의 리퀘스트 키 값과 전달 할 데이터(번들) 입력
getParentFragmentManager().setFragmentResult("requestKey", result);
프래그먼트 데이터 전달
전달 받을 프래그먼트에서의 데이터 호출
- 주의사항 : 데이터를 전달 받을 때 설정한 requestKey와 bundleKey를 혼동하지 말고 제대로 기재하여야 한다.
getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String key, @NonNull Bundle bundle) {
// 번들 키 값 입력
String result = bundle.getString("bundleKey");
// 전달 받은 result 이용하여 코딩
Toast.makeText(getActivity(), result, Toast.LENGTH_LONG).show();
}
});
실행 화면
(기능만을 설명한 포스팅이므로 데이터 전달 여부만 확인해주세요.)
- 특정 프래그먼트에서 다른 프래그먼트로 "result" 라는 문자열 데이터 전달
반응형