java - 将类设为 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
没有成功,有关如何解决此问题的任何建议?提前致谢。
解决方案
如果你想做一个这样的类,你可以这样创建
class T(var eyes: Int, var img: ImageButton, var isPressed: Boolean = false)
ImageButton 类没有实现
Parcelable
接口,在这种情况下,你不能将它传递给 Parcel。将视图放入 Parcel 不是一个好方法,您可以将它们的状态保存到实现Parcelable
并在之后恢复它的基元或类中。例如,如果您想将文本从另一个活动传递EditText
给另一个活动,您可以将此文本作为 Parcel 放入String
,并在下一个中恢复它Activity
。