Android Parcelable en Kotlin
Tengo dicho Java plotble:
@SuppressWarnings("rawtypes") public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public KwerendaGraficzna createFromParcel(Parcel in) { return new KwerendaGraficzna(in); } public KwerendaGraficzna[] newArray(int size) { return new KwerendaGraficzna[size]; } };
Ahora tratando de implementarlo en Kotlin:
- Android Parcelable en Kotlin: CREATOR no encontrado en la class de datos Parcelable
- NoSuchMethodError usando @Parcelize Annotation en Kotlin
- ¿Cómo usar @Parcelize en Kotlin 1.1.60?
- Actualizando la Vista de Reciclador y Creando Parcelables para la rotation de la pantalla (¿Cuál es el mejor curso de acción aquí?)
- Cómo usar null con kotlin @Parcelize
companion object { @SuppressWarnings("rawtypes") val CREATOR: Parcelable.Creator<KwerendaGraficzna!> = object : Parcelable.Creator<KwerendaGraficzna!> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun newArray(size: Int): Array<KwerendaGraficzna!> { return arrayOfNulls<KwerendaGraficzna!>(size) } } }
arrayOfNulls
no comstackrá requiere KwerendaGraficzna
mientras dice que recibió KwerendaGraficzna?
Entonces, ¿cómo lo hago?
- Kotlin plotble y arrayList de plotbles
- Clase plotble de Kotlin lanzando ClassNotFoundException
- Kotlin plot el problema con gson
- ¿Existe alguna forma conveniente de crear classs de datos plotbles en Android con Kotlin?
- Uso de Parceler con class de datos Kotlin con constructor para serialization
- Parcelable con object personalizado plotble
- Kotlin: ¿"eso" asignable?
- No se puede hacer una class de entidad de sala de Android plotble
Sospecho que estás usando una versión obsoleta del comstackdor de Kotlin (¡ya que usas !
). Aquí hay una versión que comstack correctamente con la última versión:
companion object { @JvmField val CREATOR = object : Parcelable.Creator<KwerendaGraficzna> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun newArray(size: Int): Array<KwerendaGraficzna?> { return arrayOfNulls(size) } } }
Como Parcelable.Creator
requiere un campo público estático, debemos marcar la propiedad @JvmField
con @JvmField
y JvmStatic
.