当我自动Parcelable时,即使我的变量为String格式,我的类parcel.readString()和parcel.readString()也会用红色下划线标出。这是我的代码
import android.os.Parcel
import android.os.Parcelable
class adel constructor(var lel : String, var skl: String) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString()
) {}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(lel)
parcel.writeString(skl)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<adel> {
override fun createFromParcel(parcel: Parcel): adel {
return adel(parcel)
}
override fun newArray(size: Int): Array<adel?> {
return arrayOfNulls(size)
}
}
}
答案 0 :(得分:4)
由于您位于Kotlin,因此可以跳过实施,而是安装一个不错的功能。只需将其添加到build.gradle
:
androidExtensions {
experimental = true
}
然后在您的课程中:
import kotlinx.android.parcel.Parcelize
@Parcelize
data class Adel(var lel : String, var skl: String) : Parcelable
您已完成。请注意,您将出现皮棉错误。只是忽略它。
答案 1 :(得分:1)
parcel.readString()
可为空,替换为
parcel.readString().orEmpty()