Android

[안드로이드] 안드로이드스튜디오(Android Studio)액티비티(Activity)에서 프래그먼트(Fragment)에 데이터 전달하기, 안드로이드 예제, 안드로이드 강좌

정보처리마법사 2016. 8. 17. 18:54
반응형

 

 

[안드로이드] 안드로이드스튜디오(Android Studio)액티비티(Activity)에서 프래그먼트(Fragment)에 데이터 전달하기, 안드로이드 예제, 안드로이드 강좌

 

안녕하세요 정보처리마법사 입니다.

이번 포스팅의 주제는 액티비티에서 프래그먼트에 데이터 전달하기에 관한 내용입니다.

매우 단순한 프래그먼트일 경우일 때를 제외한 대부분의 경우는 별도 클래스로 작성하는 것이 일반적입니다. 또한 프래그먼트가 액티비티에 블로그의 이전 예제들과 같은 방식으로 선언된 static 배열 변수로 프래그먼트의 화면을 구성하고 있지만, 프래그먼트로 데이터를 전달해야 하는 경우도 필요합니다. 그래서 지금부터 액티비티에서 프래그먼트로 데이터를 전달하는 방법을 살펴보겠습니다.

 

[ 이전 프래그먼트 예제 새창으로 열기 링크 ]

 

이전 예제에서 NUMBERS로 선언했던 static 배열 변수를

일반 변수로 변경해서 프래그먼트에 전달할 것입니다.

 

프래그먼트에 데이터를 전달하는 4가지 방법

1. 생성자에 인자로 전달하는 방법.

2. 객체를 생성하는 메소드에 인자로 전달하는 방법.

3. 프래그먼트에 인자로 전달하는 방법.

4. static 변수로 공유하는 방법.

 

이 중 세 번째 방법을 살펴보겠습니다.

 

String[] numbers = new String[]{"1", "2", "3", "4", "5"};

numbers 변수를 static으로 선언하지 않고 onCreate() 메소드 내에 선언했습니다.

ArrayListFragment list = new ArrayListFragment();

ArrayListFragment 객체를 생성합니다.

Bundle bundle = new Bundle();

bundle.putStringArray("numbers", numbers);

list.setArguments(bundle);

ArrayListFragment 객체의 setArguments() 메소드를 사용해서 숫자 배열이 저장되어 있는 번들(bundle) 객체를 프래그먼트의 인자로 설정합니다. Bundle 객체에는 문자열 배열뿐만 아니라 원하는 데이터형을 저장할 수 있습니다.

 

public String[] getNumbers(){

MainActivity클래스에서 저장한 숫자 배열을 꺼내는 기능을 하는 메소드입니다. 프래그먼트에 데이터를 저장할 때는 setArguments()메소드를 사용하고 꺼낼 때에는 getArguments() 메소드를 사용합니다.

setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_activated_1, getNumbers()));

ArrayAdapter 객체에 데이터를 설정할 때 getNumbers() 메소드가 반환한 숫자 배열을 지정합니다.

 

 

 

 

 

실행 첫 화면과 숫자 5를 클릭했을 때의 모습입니다.


참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]

 

 

 

이상으로 포스팅을 마칩니다. 감사합니다.

 

 

 

 

잘 못 된 정보가 있으면 말씀해주세요.

공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.

 

“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"

반응형