10장. 프래그먼트 인자 사용하기

프래그먼트 인자?

  • 액티비티에서 다른 액티비티를 시작할 때, Intent로 데이터를 전달하듯, 프래그먼트에서 액티비티 또는 프래그먼트로 데이터를 전달하는 방법 중 하나이다.

  • 프래그먼트에서 데이터를 액티비티로 전달하는 것은 액티비티와 동일하다.

  • 즉, Intent를 만들어서 Fragment.startActivity(Intent) 로 전달한다.

  • 다음에 실행되는 Activity에서는 intent로 받은 후, 프래그먼트를 생성하면서 데이터를 매개변수로 넘겨주면 된다.

  • 프래그먼트 인자는 Bundle로 만들어서 fragment.setArgument(Bundle)로 전달한다.

  • 단, 프래그먼트의 인자를 다루는 순서는 지켜주어야 한다.

  • 순서: 프래그먼트 생성 -> 프래그먼트 인자 생성 -> 프래그먼트를 액티비티에 추가.

  • 프래그먼트에서 다음 번에 실행된 액티비티가 종료된 후 그 결과를 갱신하는(결과를 받는) 방법은 액티비티와 동일하게 Fragment.startActivityForResult()로 액티비티를 실행하고, 결과를 받을 때는 Fragment.onActivityResult()로 결과를 받을 수 있다.

  • 단, 다음 번에 실행될 액티비티에서 호스팅되는 프래그먼트에서는 setResult 메서드가 제공되지 않고, getActivity().setResult(Activity.RESULT_OK,null) 와 같은식으로 사용해야 합니다.