Java 使班级成为可包裹的
我目前正试图使我的一个类实现Java 使班级成为可包裹的,java,android,kotlin,parcelable,parcel,Java,Android,Kotlin,Parcelable,Parcel,我目前正试图使我的一个类实现可打包,但我无法正确地实现它。这是一节课 class T(val eyes:Int,val img:ImageButton){ var image = img var value = eyes var isPressed = false } Android Studio建议,在实现Parcelable时,我的构造函数应该与此类似,但我不知道如何使用包来初始化我的ImageButton co
可打包
,但我无法正确地实现它。这是一节课
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)
Parcelable
接口,在这种情况下,您无法将其传递到Parcel中。将视图放入Parcelable并不是一种好方法,您可以将它们的状态保存到实现Parcelable
的基本体或类中,然后将其恢复。例如,如果要将文本从EditText
传递到另一个活动,可以将此文本作为String
放入包裹中,并在下一个活动中还原它
class T(var eyes: Int, var img: ImageButton, var isPressed: Boolean = false)
Parcelable
接口,在这种情况下,您无法将其传递到Parcel中。将视图放入Parcelable并不是一种好方法,您可以将它们的状态保存到实现Parcelable
的基本体或类中,然后将其恢复。例如,如果要将文本从EditText
传递到另一个活动,可以将此文本作为String
放入包裹中,并在下一个活动中还原它
如果您使用的是kotlin,请始终为模型使用数据类。并使用
@Parcelize
注释,这样就不需要编写额外的样板代码。但在您的情况下,您不能打包
图像按钮
它不是一个实现打包
接口的类
如果您正在搜索一种正常的实现方法,只需这样使用:
@Parcelize
data class UserInformationData(
var userId : String? = null,
var firstName : String? = null,
var lastName : String? = null,
var email : String? = null,
var gender : String? = null,
var dateOfBirth : String? = null,
var phoneNumber : String? = null
):Parcelable
如果您使用的是kotlin,请始终为模型使用数据类。并使用
@Parcelize
注释,这样就不需要编写额外的样板代码。但在您的情况下,您不能打包
图像按钮
它不是一个实现打包
接口的类
如果您正在搜索一种正常的实现方法,只需这样使用:
@Parcelize
data class UserInformationData(
var userId : String? = null,
var firstName : String? = null,
var lastName : String? = null,
var email : String? = null,
var gender : String? = null,
var dateOfBirth : String? = null,
var phoneNumber : String? = null
):Parcelable
不能将ImageButton(或任何其他视图)作为包裹的一部分。它包含对上下文、资源、其他视图等的引用。此外,如果属性是集合、基本体或其他地块,则只能将其作为地块的一部分。不能将ImageButton(或任何其他视图)作为地块的一部分。它包含对上下文、资源、其他视图等的引用。此外,如果属性是集合、基本体,或其他包裹。有了这些信息,我对设计做了一些更改,以避免将图像传递给此类,然后使类实现包裹接口。有了这些信息,我对设计做了一些更改,以避免将图像传递给此类,然后使类实现包裹接口。