[Fragment] Bundle에 객체를 전달하기

Activity에서 fragment로 데이터를 전달할 때, 일반적으로 String인 경우에 

putString으로 보낸다. 하지만, 보내야 하는 데이터가 많은 경우, 또는 List를 보내야 하는 경우에 하나하나 해줘야한다.

 

이러한 경우에는 객체로 보내면 된다.

putSerializable을 사용한다.

 

이 글에서는 예제로 Data Class를 전달해본다.

아래와 같이 DataClass를 생성할 때, Serializable을 상속받아 생성한다.

import com.capstone.traffic.model.network.sk.direction.dataClass.itineraries

data class Serial(val ser: List<itineraries>?) : java.io.Serializable

 

이후에 아래와 같은 형태로 Fragment에 전달해준다.

bundle.putSerializable("data", Serial(ser[2]))

 

받는 Fragment에서는 아래와 같이 해준다.

val data = bundle?.getSerializable("data") as Serial