[Android/안드로이드] kotlin , intent 로 객체 전달
2020. 5. 29. 18:58ㆍAndroid/깨알 개념 정리
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)
끝!!!!
'Android > 깨알 개념 정리' 카테고리의 다른 글
Android 개념 정리 - 1 (객체, 클래스, 자바 컬렉션, 추상 클래스, 인터페이스, 자료구조) (0) | 2022.01.31 |
---|---|
프로그래밍 정리 (SOLID 원칙, 객체지향 프로그래밍, 함수형 프로그래밍, 의존성 주입, 스레드 세이프(Thread safe), TDD) (0) | 2022.01.31 |
[Firebase PUSH] Android 앱에서 background(백그라운드), foreground(포그라운드) 메시지 수신 정리 (0) | 2020.06.11 |
[Android/안드로이드] ConstraintLayout 에 대하여 (1) | 2020.05.29 |
[Android/안드로이드/Context] ApplicationContext vs ActivityContext ?!! (0) | 2020.05.29 |