java - 如何打包包含哈希​​映射的类对象? Kotlin

标签 java android kotlin

我正在尝试使用 intent.putParcelableArrayListExtra 将自定义数组列表从一个 Activity 传递到另一个 Activity 。

所以我在我的类对象中实现了Parcelable:

class AudioModel(audioTitle:String,map:HashMap<String, Any>):Parcelable{

    var title:String=""
    var artistName:String=""
    var urlLink:String=""

    init{
        title=audioTitle
        urlLink=map["url"].toString()
        artistName=map["artist"].toString()
    }
}

在添加 parcelable 实现之后,我有:

class AudioModel(audioTitle: String, map: HashMap<String, Any>) : Parcelable {

    var title: String = ""
    var artistName: String = ""
    var urlLink: String = ""

    constructor(parcel: Parcel) : this(
            TODO("audioTitle"),
            TODO("map")) {
        title = parcel.readString()
        artistName = parcel.readString()
        urlLink = parcel.readString()
    }

    init {
        title = audioTitle
        urlLink = map["url"].toString()
        artistName = map["artist"].toString()
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(title)
        parcel.writeString(artistName)
        parcel.writeString(urlLink)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<AudioModel> {
        override fun createFromParcel(parcel: Parcel): AudioModel {
            return AudioModel(parcel)
        }

        override fun newArray(size: Int): Array<AudioModel?> {
            return arrayOfNulls(size)
        }
    }

}

我的问题是我在构造函数中收到警告

unreachable code message

因此我无法使用 intent.putParcelableArrayListExtra 传递我的数据。有谁知道如何解决这个问题?

最佳答案

您的代码实际上很好。只是 TODO 在这种情况下不起作用。用实际代码替换 TODO,它应该可以工作。

例如:

constructor(parcel: Parcel) : this(
            parcel.readString(),
            hashMapOf<String, Any>()) {

关于java - 如何打包包含哈希​​映射的类对象? Kotlin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48887169/

相关文章:

java - android.os.NetworkOnMainThreadException 的替代解决方案

android - 如何将 Google Chrome 设置为我以编程方式创建的应用程序的默认浏览器

java - 如何在浮点值膨胀之前将浮点值传递给扩展 LinearLayout 的类?

android - Kotlin Flow 和 Websockets 在 Android 上具有干净的架构

java - 使用 Jetty 9 HttpClient 的异步 POST 请求

java - 防止空的xml元素被转换为自闭元素

java - 为什么我在使用某些 JRE 时会收到 UnsupportedClassVersionError : Unsupported major. 次要版本 51.0?

android - 通过 Bluemix 将 TI SensorTag 连接到 IBM IoT Foundation 时 userID() 无效

android - 地理围栏数据在转换时为空

java - 创建 equals 方法