삽질개발

[Mindev 개발공부] Android 간단하게 Parcelable 만들기 본문

Android

[Mindev 개발공부] Android 간단하게 Parcelable 만들기

MinDev 2018. 12. 25. 20:35

안녕하세요.

오늘은 Parcelable 를 이용해서 간단하게 만드는 방법을 알아보겠습니다.


먼저 기존에 사용 방법을 간단한 코드를 통해서 알아보겠습니다.


data class Person(val name: String, val age: Int, val email: String, val phone: Long) : Parcelable {
    constructor(parcel: Parcel) : this(
        parcel.readString(),
        parcel.readInt(),
        parcel.readString(),
        parcel.readLong())

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(name)
        parcel.writeInt(age)
        parcel.writeString(email)
        parcel.writeLong(phone)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<Person> {
        override fun createFromParcel(parcel: Parcel): Person {
            return Person(parcel)
        }

        override fun newArray(size: Int): Array<Person?> {
            return arrayOfNulls(size)
        }
    }
}

위와 같은 방법을 사용하게 되었습니다.

하지만!!
위 코드를 간단히 바꿔보겠습니다.


@Parcelize
data class PersonParcelize(val name: String, 
                           val age: Int, 
                           val email: String, 
                           val phone: Long) : Parcelable


끝!!


@Parcelize 어노테이션을 기본적으로 사용은 못하게 됩니다.


어노테이션 사용방법은

build.gradle file:

androidExtensions {
experimental = true
}


설정 후 사용해주시면 끝입니다.
감사합니다.

Comments