Android/깨알 개념 정리
[Android/안드로이드] kotlin , intent 로 객체 전달
olivia
2020. 5. 29. 18:58
intent 를 통해 객체를 전달하려면 Parcelable 또는 Serializable을 사용하면 된다.
그럼 이 둘은 어떻게 다른가?
Parcelable vs Serializable
1. Parcelable (파슬러블)
- Parcelable은 직렬화를 위한 또다른 인터페이스로 Java 가 아닌 Android SDK 의 인터페이스이다
2. Serializable (시리얼라이저블)
- Serializable은 Android SDK 가 아닌 표준 Java 의 인터페이스이다
Parcelable을 통한 데이터 전달
1. @Parcelable annotation을 사용하여 데이타 클래스 생성
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
data class ParcelableData(
val name: String,
val age: Int
): Parcelable
2. intent 를 통하여 전달
val parcelableData = ParcelableData("soyoung", 1)
val intent = Intent(this, MainActivity::class.java).apply {
putExtra("parcelableData", parcelableData)
}
startActivity(intent)
Serializable을 통한 데이터 전달
1. Serializable 인터페이스를 상속받은 데이타 클래스 생성
import java.io.Serializable
data class SerializableData(
val name: String,
val age: Int
): Serializable
2. intent 를 통하여 전달
val serializableData = SerializableData("soyoung", 1)
val intent = Intent(this, MainActivity::class.java).apply {
putExtra("serializableData", serializableData)
}
startActivity(intent)