android - Kotlin 为 Double 数组添加 Parcelable 实现
问题描述
我正在尝试添加声明为双精度数组的变量的可打包实现。当我尝试使用 Android Studio 自动生成此实现时,coordinates
密钥保留在 TODO 中:
import android.os.Parcel
import android.os.Parcelable
class PointGeoJson (
val type: String = "",
val coordinates: Array<Double> = emptyArray()
) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
TODO("coordinates")
) {
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(type)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<PointGeoJson> {
override fun createFromParcel(parcel: Parcel): PointGeoJson {
return PointGeoJson(parcel)
}
override fun newArray(size: Int): Array<PointGeoJson?> {
return arrayOfNulls(size)
}
}
}
解决方案
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
class PointGeoJson(
val type: String = "",
val coordinates: Array<Double> = emptyArray()
) : Parcelable
这应该可以正常工作
推荐阅读
- nlp - 建议不完整句子中的单词列表的 NLP 模型
- angular - IONIC 4 InAppBrowser 隐藏,直到它完成加载
- python - Python 3,按顺序获取 IP 地址和 Ping 的文本文件
- jquery - 如何使用 jquery 或任何其他方法在前端实现产品的复选框选择
- c# - 如何修复错误 NETSDK1 project.assets.json 文件未找到。运行 NuGet 包还原以生成此文件
- angular - ExpressionChangedAfterItHasBeenCheckedError:表达式在使用 Float 检查后已更改
- android - Firebase 从片段中的数据库获取值
- python - 如何使用 IP 摄像头而不是 USB 网络摄像头检测/识别人脸
- php - 无法从控制器方法传递的 payumoney 成功响应中获取值
- python - Selenium take element screenshot - Google Chrome