Tag: parcelable

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中的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) : Parcelable { companion object { val CREATOR = object : Parcelable.Creator { override fun createFromParcel(`in`: Parcel): Project { return Project(`in`) } override fun newArray(size: Int): Array { return arrayOfNulls(size) } } } protected constructor(parcelIn: Parcel) : this ( […]

如何在实现Parcelable接口时读写一个布尔值?

我试图做一个ArrayList Parcelable为了传递给一个活动的自定义对象列表。 我开始写一个扩展ArrayList并实现Parcelable的myObjectList类。 MyObject某些属性是boolean但Parcel没有任何方法read/writeBoolean 。 处理这个问题的最好方法是什么?

@Parcelize注释与inheritance

我无法使用@parcelize注释创建通用结构。 我希望构造函数可以用作Jason,Room和Parcelable的构造函数。 让我们假设我们有课 @Parcelize class Food(var taste: String = “”) 现在我首先想到了两个解决方案 1.提示味道必须是var或val,有可用的Parceable构造函数 @Parcelize class FastFood(var callory:String = “”, taste: String): Food(taste) // error 我认为,我必须明确地确定一下这个口味 – 那么多态的好处是什么呢? @Parcelize class FastFood(var callory: String = “”, var taste: String): Food(taste) // error 我怎样才能有效地inheritance与你的图书馆?

如何用kotlin @Parcelize使用null

这里是非常简单的代码: @Parcelize data class Inner(val a: Int): Parcelable @Parcelize data class Test(val a: Int, val inner: Inner?): Parcelable @RunWith(AndroidJUnit4::class) class ExampleInstrumentedTest { @Test fun testParcel() { val test = Test(0, null) val parcel = Parcel.obtain() parcel.writeParcelable(test, test.describeContents()) } } 我有可空的属性Test.inner 。 如果它不为空,代码工作正常,但是当它为空,那么我有例外: java.lang.NullPointerException: Attempt to invoke interface method ‘void android.os.Parcelable.writeToParcel(android.os.Parcel, int)’ on a null object […]

使用Parcelable时,Kotlin编译错误

我正在尝试为我的课程实施Parcelable 。 Android Studio自动为我生成代码。 现在我的class级看起来像这样: @Parcelize data class BankCard(var owner: String, var number: String, var isDefaultCard: Boolean) : Parcelable { constructor(parcel: Parcel) : this( parcel.readString(), parcel.readString(), parcel.readByte() != 0.toByte()) { } override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeString(owner) parcel.writeString(number) parcel.writeByte(if (isDefaultCard) 1 else 0) } override fun describeContents(): Int { return 0 } companion […]

更新Recycler视图并为屏幕旋转创建可分区(这里最好的做法是什么?)

我一直在努力学习Kotlin两个月。 我在Kotlin做了一个Reddit应用程序,在Recycler View Grid Layout显示缩略图 将我的情况情景化 在MainActivity的apiCall方法中,我调用RedditAPI ,在其中使用RedditAPI进行网络调用,并根据ResultValue object class返回Observable然后,我在MainActivity检索对象,并将其显示在Recycler View ,这很有效。 但是,当我实现无限滚动,并有新的对象生成每次向下滚动时,我不得不将所有值添加到一个mutable list cumulativeValue ,更改我的适配器的结构,只是调用adapter.notifydatasetchange()滚动,也工作出来罚款。 private val cumulativeValues = mutableListOf() 然后在onscrolllistener redditAPI.callParameters(location, page, address.queryLimit, afterValue) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { result -> cumulativeValues.addAll(result.data.children.toMutableList()) 我的代码工作,但我想实现屏幕旋转,现在我不知道我是否可以做到这一点parcelables,因为我把所有从网络调用检索到的值添加到一个可变的列表 我使用kotlin插件来实现parcelable类的另一个类, 这里有另一个类的RedditChildrenDetails作为参数,我也为这个类实现了parcelable(在同一个链接中)。 class RedditChildrenResponse(val data: RedditChildrenDetails) : Parcelable { … class RedditChildrenDetails( val url: String, val title: String, val thumbnail: String, […]

无法使Android房间实体类可见

我使用Kotlin,并为Android数据库房间提供Entity类。 我想使它Parcelable ,但我得到这个错误: /Users/rafael/AndroidStudioProjects/Cevsen/app/build/tmp/kapt3/stubs/debug/me/aizon/rafaelekol/cevsen/entities/Bab.java Error:(6, 1) error: Parceler: No @ParcelConstructor annotated constructor and no default empty bean constructor found. Warning:warning: Supported source version ‘RELEASE_7’ from annotation processor ‘android.arch.persistence.room.RoomProcessor’ less than -source ‘1.8’ /Users/rafael/AndroidStudioProjects/Cevsen/app/build/tmp/kapt3/stubs/debug/me/aizon/rafaelekol/cevsen/database/MyDatabase.java Warning:(5, 1) warning: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either […]

如何用kotlin标记List

我想要通过Bundle传递一个数据类(包含int作为一个属性列表)到其他活动,因此我需要添加Parcelable实现到我的数据类。 任何想法如何包裹这个属性? data class Test(val id: Long, val files: List?) : Parcelable { constructor(parcel: Parcel) : this( parcel.readLong(), TODO(“files”)) override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeLong(id) } override fun describeContents(): Int { return 0 } companion object CREATOR : Parcelable.Creator { override fun createFromParcel(parcel: Parcel): Test { return Test(parcel) } override fun newArray(size: Int): […]

创建一个带有辅助构造函数的Parcelable类,该构造函数在Kotlin中将参数列表作为参数

我开始使用Kotlin,并试图实现一个parcelable对象,它接收一个字符串列表作为次要构造函数的参数。 但是,我收到错误: 在超类构造函数被调用之前,不能访问“” 这里是我的代码: class StringChecker(val stringList : List) : Parcelable { var mStringList = stringList constructor(parcel: Parcel) : this(parcel.readStringList(mStringList)) override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeStringList(mStringList) } override fun describeContents(): Int { return 0 } companion object CREATOR : Parcelable.Creator { override fun createFromParcel(parcel: Parcel): StringChecker { return StringChecker(parcel) } override fun newArray(size: […]