Tag: parcelable

Kotlin parcelable类抛出ClassNotFoundException

我有一个类作为我的RecyclerView数据模型,以便将这个类的对象从一个活动传递给另一个活动,通过Intent我必须使它可以Parcelable 现在的问题是,我能够将对象从一个活动发送到另一个活动并检索它, 以便应用程序不会崩溃 ,但会一直抛出ClassNotFoundException在logcat屏幕中。 我究竟做错了什么? —-> Person.kt @Parcelize class Person(var name: String, var username: String, var address: String, val avatar: Int) : Parcelable —->在MainActivity.kt val intent = Intent(this, ProfilePage::class.java) intent.putExtra("clicked_person",person) startActivity(intent) —->。 onCreate()在ProfilePAge.kt中 var person = intent.getParcelableExtra<Person>("clicked_person") as Person 和Exception E/Parcel: Class not found when unmarshalling: com.example.testkot.kotlinapp.Person java.lang.ClassNotFoundException: com.example.testkot.kotlinapp.Person 请记住,该应用程序不会崩溃,它继续工作,但在logcat中显示异常

Android Kotlin创建类实现Parcelable在writeToParcel方法的“覆盖”中给出一个错误

要使用Parcelable,我已经遵循了这个版本的Kotlin 1.1.4: https : //blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/ 在项目中添加这一行 androidExtensions { experimental = true } 然后定义一个类: @Parcelize class User(val firstName: String, val lastName: String) : Parcelable writeToParcel()和createFromParcel()方法是自动创建的 override fun writeToParcel(parcel: Parcel, flags: Int) { … } 但是在消息的“覆盖”关键字中仍然存在错误 OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED:不允许覆盖“writeToParcel”。 改为使用“Parceler”随播对象 你能告诉我正确的方法吗? 编辑:只有默认构造函数中定义的属性将添加到包,其他不是? 我在这堂课看到这个警告。 PROPERTY_WONT_BE_SERIALIZED:属性不会被序列化为“包裹”。 添加“@Transient”注释以删除警告

Kotlin使用Parcelable将ListArray传递给另一个Activity

我有一个自定义类充满了用户的信息。 我使用ArrayList来保存所有的用户类数据。 我想将数组传递给可以读取和修改的另一个活动。 由于数组可能很大,因此我需要尽可能高效和快速地完成此过程,这就是为什么我选择使用Parcelable而不是Serializable。 我在使用Kotlin时遇到了麻烦。 有很多的Java教程,但没有在Kotlin,这是什么使这个问题不同,那么所有其他人。 有人可以提供和解释Kotlin的代码如何实现? 这是我迄今为止: constructor(`in`:Parcel) { CollegeName = `in`.readString() } override fun describeContents(): Int { return 0 } override fun writeToParcel(dest: Parcel?, flags: Int) { } private fun readFromParcel(`in`:Parcel) { CollegeName = `in`.readString() } companion object { @JvmField final val CREATOR: Parcelable.Creator<College> = object: Parcelable.Creator<College> { override fun createFromParcel(source: Parcel): College […]

Kotlin:可转让的“它”?

我试图简化Kotlin中的Parcelable代码: public class C() : Parcelable { var b1: Boolean = false var b2: Boolean = false var b3: Boolean = false var i1: Int = 0 var i2: Int = 0 val parcelBooleans = listOf(b1, b2, b3) val parcelInts = listOf(i1, i2) override fun writeToParcel(p: Parcel, flags: Int) { parcelBooleans.forEach { p.writeBoolean(it) } parcelInts.forEach […]

Kotlin接口中的伴随对象

我正在试图做一个接口Parcelable,因此我需要一个这样的接口 interface AB : Parcelable { companion object { val CREATOR : Parcelable.Creator<AB> } } 和我的两个类A和B看起来像 data class A (…): Parcelable{ … companion object { val CREATOR : Parcelable.Creator<AB> = object : Parcelable.Creator<AB> { override fun newArray(size: Int): Array<AB?> { return arrayOfNulls(size) } override fun createFromParcel(parcel: Parcel): AB { return A(parcel) } } } 我正努力在kotlin中实现这样一个接口。 […]

Kotlin中的Android Parcelable:在Parcelable数据类中找不到CREATOR

随着Kotlin RC的发布,我开始编写一个应用程序来学习它,但我不知道如何让Parcelable工作。 数据类: data class Project (val reponame:String, val username:String, val language:String, val vcsUrl:String, val branches:Map<String, Branch>) : Parcelable { companion object { val CREATOR = object : Parcelable.Creator<Project> { override fun createFromParcel(`in`: Parcel): Project { return Project(`in`) } override fun newArray(size: Int): Array<Project?> { return arrayOfNulls(size) } } } protected constructor(parcelIn: Parcel) : this […]

用Kotlin在Android中创建Parcelable数据类有没有一种方便的方法?

我目前在我的Java项目中使用了优秀的AutoParcel ,这有助于创建Parcelable类。 现在,我为下一个项目考虑的Kotlin具有这种数据类的概念,它自动生成equals,hashCode和toString方法。 有没有一种方便的方法来创建一个Kotlin数据类Parcelable方便的方式(没有手动实现的方法)?

Android可以在Kotlin下载

我有这样的Java parcelable: @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]; } }; 现在试图在Kotlin中实现它: companion object { @SuppressWarnings("rawtypes") val CREATOR: Parcelable.Creator<KwerendaGraficzna!> = object : Parcelable.Creator<KwerendaGraficzna!> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun […]