정의
- 안드로이드 컴포넌트나 Fragment간에 클래스로 데이터를 주고 받을 때 사용
사용법
1. build.gradle(Module:app)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
//추가
id 'kotlin-parcelize'
id 'kotlin-android'
}
2. data class 모델 변경
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class TodoModel(
val title: String?, val description: String?
) : Parcelable
3. Intent로 데이터 넘겨주기
val intent = Intent().apply {
//data class를 통해서 보내줄 수도 있다.
putExtra(EXTRA_TODO_MODEL, TodoModel(etTitle.text.toString(), etDescription.text.toString()))
}
setResult(Activity.RESULT_OK, intent)
4. 넘겨준 데이터 받기
val todoModel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
//버전에 따라 다르게
result.data?.getParcelableExtra(TodoAddActivity.EXTRA_TODO_MODEL, TodoModel::class.java)
} else {
//버전에 따라 다르게
result.data?.getParcelableExtra(TodoAddActivity.EXTRA_TODO_MODEL)
}