반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
안드로이드 개발 시 Fragment를 사용하면
Bundle을 많이 사용하게 되는데요.
Bundle args = new Bundle();
args.putString("date", date);
이런 식으로 많이 사용합니다.
만약 유저 정보를 보낸다고 했을 때
이름, 나이, 성별, 가입일, 주소 .... 등등 수십 개의 정보를 보내야 한다면?
args.putString("name", userName)...
이런 식으로 하나하나 다 보내야 할까요?
다행히도 객체를 Bundle에는 객체를 보낼 수 도 있는데요.
args.putSerializable("patientInfo", patientInfo);
putSerializable을 사용하면 객체를 보낼 수 있습니다.
그 전에 객체가 Serializable을 상속받기만 하면요
전 요즘 코틀린으로 개발 중이라 코틀린을 사용했습니다.
data class UserInfo(val name : String, val id : String) : Serializable
위 처럼 클래스에서 Serializable을 상속받아줍니다.
Fragment에서 받아서 사용하는 방법 또한 간단합니다.
Fragment 클래스에는 고맙게도 setArguments 라는 메소드가 있어서
받은 Bundle을 쉽게 사용할 수 있습니다.
override fun setArguments(args: Bundle?) {
patientInfo = args!!.getSerializable("patientInfo") as PatientInfo
}
코틀린에서는 이렇게 사용하면 되고, 자바에서는
@Override
public void setArguments(@org.jetbrains.annotations.Nullable Bundle args) {
assert args != null;
PatientInfo patientInfo = (PatientInfo) args.getSerializable("patientInfo");
}
이렇게 사용하면 됩니다.
어렵지 않죠? 이상입니다.
반응형