Kotlin cada vez nos facilita más la vida, no dudes que en un futuro solo escribas «Kotlin, por favor desarróllame una app bonita sin errores y que se venta como pan caliente» y lo haga por sí solo (Es broma pero muchos clientes en serio creen que así funciona 😛)
Una de las cosas que se han vuelto muy fáciles es pasar objetos completos entre activities usando intents, para esto tenemos que implementar algo llamado Parcelable en la clase y esto convierte a los objetos a un formato que pueda ser enviado a través de un intent, a este proceso se le llama «serialización».
Supongamos que tenemos una clase Person:
Person(val name: String,
val age: Int,
val weight: Double,
val height: Double)
En vez de hacer esto:
val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("name", person.name)
intent.putExtra("age", person.age)
intent.putExtra("weight", person.weight)
intent.putExtra("height", person.height)
startActivity(intent)
Podemos hacer esto:
val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("person", person)
startActivity(intent)
Como dije arriba, para poder hacer esto la clase Person debe implementar Parcelable, antes esto era una tarea aburrida y repetitiva pero ahora basta con hacer lo siguiente: Primero agregamos el plugin de kotlin-parcelize en el archivo build.gradle(app)
plugins { id 'com.android.application' id 'kotlin-android' ... id 'kotlin-parcelize' }
Luego vamos a la clase Person y agregamos @Parcelize en la parte superior, también implementamos Parcelable así:
import kotlinx.parcelize.Parcelize
@Parcelize
Person(val name: String,
val age: Int,
val weight: Double,
val height: Double)
: Parcelable
Y listo, ya con eso podemos pasar los objetos de tipo Person entre activities.
Espero que te sirva este pequeño consejo, si es así te invito a suscribirte y dejar tus comentarios o dudas o lo que sea.