본문 바로가기

프로그래밍 TIP/Android

Android Fragment 테그에 초기값 지정하기(argument)

같은 프레그먼트를 여러 개 사용하고 싶을 때가 있습니다.

그럴려면 초기값을 설정해야겠죠

그런데 코드레벨이 아닌 xml으 fragment에 값을 지정해줘야 합니다.

일단 xml 코드레벨에서는 아래와 같이 argument로 지정하면 됩니다.

아래는 myArg라는 키를 integer 형태로 0 을 입력한 상태입니다.

<fragment
    android:id="@+id/navigation_list1"
    android:name="com.purplemint.jeju_cult_info.ui.list.ListFragment"
    android:label="@string/reskey_app_name"
    tools:layout="@layout/fragment_list"
    >
    <argument
        android:name="myArg"
        app:argType="integer"
        android:defaultValue="0" />
</fragment>

사용할 때는 아래와 같이 번들을 가져와서 사용하시면 됩니다.

 

public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    Bundle bundle = getArguments();
    Log.d(TAG, "onCreateView: " + bundle.get("myArg"));
    return inflater.inflate(R.layout.fragment_list, container, false);
}

초기값 가져오기