首页 > 解决方案 > 将类设为 Parcelable

问题描述

我目前正在尝试使我的一个类实现Parcelable,但我不能正确地做到这一点。这是课堂。

    class T(val eyes:Int,val img:ImageButton){
         var image = img
         var value = eyes
         var isPressed = false
    }

Android Studio 建议我的构造函数在实现时应该与此类似Parcelable,但我不知道如何使用包裹来初始化我的ImageButton.

    constructor(parcel: Parcel) : this(
            parcel.readInt(),
            //parcel.
            ) {
         value = parcel.readInt()
         isPressed = parcel.readByte() != 0.toByte()
    }

尝试使用包裹。任何并将其转换为ImageButton没有成功,有关如何解决此问题的任何建议?提前致谢。

标签: javaandroidkotlinparcelableparcel

解决方案


  1. 如果你想做一个这样的类,你可以这样创建

    class T(var eyes: Int, var img: ImageButton, var isPressed: Boolean = false)
    
  2. ImageButton 类没有实现Parcelable接口,在这种情况下,你不能将它传递给 Parcel。将视图放入 Parcel 不是一个好方法,您可以将它们的状态保存到实现Parcelable并在之后恢复它的基元或类中。例如,如果您想将文本从另一个活动传递EditText给另一个活动,您可以将此文本作为 Parcel 放入String,并在下一个中恢复它Activity


推荐阅读