프로그래밍/Android

안드로이드 Fragment에 정보 전달하기

Lou Park 2016. 7. 28. 10:46

개발 중 나는 Fragment에 간단한 정보를 전달할 일이 있어

Fragment를 생성할 때 constructor를 추가하여 넣었던 적이있다.

그런데 빌드시 오류가 났다. non-default 생성자는 Fragment에서 허용되지 않는 듯 보였다.


예를 들어 사용자의 정보인 아이디를 보여주는 Fragment가 있다고 하자.

그렇다면 userId라는 String 타입 값을 Fragment에 넘겨줄 방법이 필요하다.


이때 Bundle을 이용하면 마치 Activity간 Intent처럼 넘겨줄 수 있다.


Fragment fragment = new UserFragment(); // Fragment 생성
Bundle bundle = new Bundle(1); // 파라미터는 전달할 데이터 개수
bundle.putString("userId", userId); // key , value
fragment.setArguments(bundle);

이런식으로 말이다.

이렇게 Fragment로 정보를 넘겨주고 나면 Fragment의 onCreateView 메소드 안에서

getArguments()를 이용해 간단히 받아와 사용하면 된다.

항상 번들이 뭔가 했는데, 이렇게 유용한거였다니! 감동 ㅎㅎ


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String userId = getArguments.getString("userId"); // 전달한 key 값
return inflater.inflate(R.layout.fragment_one, null);
}