액티비티 - 액티비티 간의 데이터 전달일 때는 Intent 사용하여 데이터 전송, 받기가 가능,
Fragment - Fragment / Fragment - 액티비티 는 Intent 사용하여 데이터 전송, 받기가 불가능하다!
그렇다면? 어떻게 데이터를 전송, 받는 것이 가능할까 ?
Bundle을 이용하면 가능함 !
먼저, Intent와 Bundle의 차이를 알아보자. //저장과 전달의 차이를 갖고 있다!
Intent : 어플리케이션 내 액티비티 간의 데이터를 전달할 때 사용하는 클래스
Bundle : 문자열로 된 키와 여러가지의 타입의 값을 매핑하여 저장하는 Map 클래스! //다양한 데이터 타입을 전송 가능.
나는 Fragment - Fragment 끼리 데이터 전송 시, Intent를 이용하여 데이터 전달을 시도해보았는데 되지 않았음! 이럴 땐 Bundle을 이용해야 함!
1. 데이터를 전송하는 쪽 (setArgment())
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment1 fragment1 = new Fragment1();
//프레그먼트끼리 rfgName넘기기 위한 bundle
Bundle bundle = new Bundle();
bundle.putString("Name", name);
fragment1.setArguments(bundle); //Name 변수 값 전달. 반드시 setArguments() 메소드를 사용하지 않으면, 받는 쪽에서 null 값으로 받음.
//버튼을 눌렀을 때 RE-Fr자바를 탈 수 있도록 함
transaction.replace(R.id.frame, fragment1); //프레임 레이아웃에서 프레그먼트 1로 변경(replace)해라
transaction.commit(); //저장해라 commit
2. 데이터를 받는 쪽 (getArgment())
Bundle bundle = getArguments(); //번들 받기. getArguments() 메소드로 받음.
if(bundle != null){
name = bundle.getString("rfgName"); //Name 받기.
System.out.println(Name); //확인}
'Development > Android' 카테고리의 다른 글
OAuth2.0 소셜로그인 처리(0) - 카카오 로그인 API ver2 버전 (0) | 2021.08.19 |
---|---|
[HTTP] GET / POST 방식 차이 (0) | 2020.03.09 |
[MYSQL] AUTO_INCREMENT 값 초기화 (0) | 2020.02.21 |
[안드로이드]HttpURLConnection/getOutputStream() 에러 (2) | 2020.02.18 |
[안드로이드] HttpURLConnection (0) | 2020.02.17 |
댓글