본문 바로가기
Android

[Android] Fragment 간 데이터 전달하기

by 준토리73 2023. 3. 17.

https://velog.io/@sysout-achieve/Android-Fragment%EA%B0%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%84%EB%8B%AC-%EB%B0%A9%EB%B2%95%EB%93%A4

 

[Android] Fragment간 데이터 전달 방법들

Fragment간 데이터 전달에 관한 여러 방법들

velog.io

💡 1) FragmentManager에 Bundle로 Data 담아 전달하는 방법

1. 데이터를 전송하는 쪽

@Override
public void goPackingDialog(String idx) {
    fragment = new PackingFragment();
    fragment.setViewResourceId(R.layout.fragment_packing);

    // TODO. 프래그먼트 간 데이터 전송
    // 프래그먼트끼리 key 를 넘기기 위한 bundle
    Bundle bundle = new Bundle();
    bundle.putString("OtKey",idx);
	fragment.setArguments(bundle);
    
    
    FragmentTransaction transaction = getFragmentManager().beginTransaction();

    transaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
    transaction.replace(R.id.area_main, fragment);
    transaction.commit();
}

2. 데이터 받는 쪽 

@override
public void onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
	var result = arguments?.getString("key")
	
    	return inflater.inflate(R.layout.fragment_packing, container, false)
    }

💡 2) Fragment Result API 를 사용하여 Data 전달

https://velog.io/@sysout-achieve/Android-Fragment%EA%B0%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%84%EB%8B%AC-%EB%B0%A9%EB%B2%95%EB%93%A4

 

[Android] Fragment간 데이터 전달 방법들

Fragment간 데이터 전달에 관한 여러 방법들

velog.io

 

💡 Intent와  Bundle의 차이 

// 저장과 전달의 차이! 

  • Intent : 어플리케이션 내 액티비티 간의 데이터를 전달할 때 사용하는 클래스 

 

// 다양한 데이터 타입을 전송가능 

  • Bundle : 문자열로 된 키와 여러가지 타입의 값을 매핑하여 저장하는 Map 클래스 

 

 

 

 

나아가, 하나의 데이터 뿐만이 아니라 여러개의 데이터를 함께 보내는 방식도 구현할 수 있다. 

그건 나중에.... 

 

댓글