Android(Java) - Fragment - 프래그먼트 간 데이터 전달하기

반응형

 

프래그먼트 데이터 전달

전달  할 프레레그먼트에서의 데이터 저장

  • 주의사항 : 번들(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" 라는 문자열 데이터 전달

반응형