Sobes.tech
Junior — Middle

É possível guardar um objeto do tipo data class num Android Bundle?

sobes.tech IA

Resposta da IA

Uma classe de dados em Kotlin pode ser guardada num Android Bundle, mas não diretamente, pois o Bundle suporta apenas certos tipos de dados (primitivos, Serializable, Parcelable, etc.).

Para guardar uma classe de dados no Bundle, deve-se:

  • Fazer com que a classe de dados implemente a interface Parcelable (recomendado para Android).
  • Ou tornar a classe Serializable (menos eficiente).

Exemplo com Parcelable (usando o plugin Kotlin Android Extensions ou a biblioteca Parcelize):

@Parcelize
data class User(val name: String, val age: Int) : Parcelable

// Guardar no Bundle
val bundle = Bundle()
bundle.putParcelable("user_key", user)

// Obter do Bundle
val user = bundle.getParcelable<User>("user_key")

Se a classe de dados não implementar Parcelable ou Serializable, não é possível guardá-la diretamente no Bundle.