【问题标题】:How to fix nested arrays如何修复嵌套数组
【发布时间】:2021-01-26 22:39:58
【问题描述】:

我有一个数据模型类 CategoryModel:

@Serializable
data class CategoryModel (val name: String, val items: ArrayList<String>) : java.io.Serializable {}

我正在尝试使用 Serialize,以便可以将此类中的数据存储到 Bundle 中以与另一个类共享:

    private fun displayCategoryItems(cat: CategoryModel) {

        val categoryItemsIntent = Intent(this, CategoryItemsActivity::class.java)
        val data: String = Json.encodeToString(cat)
        categoryItemsIntent.putExtra(categoryObjKey, data)

        startActivityForResult(categoryItemsIntent,mainActivityReqCode)

    }

我注意到它已经开始用数组括号做一些奇怪的事情,看起来当我尝试反序列化它时,项 ArrayList 正在转换为字符串。所以不是

"items": "[1, 2]"

我明白了

"items":["[1, [2]]"]

我做错了什么?

【问题讨论】:

    标签: android kotlin kotlinx


    【解决方案1】:

    只需将实现 Serializable 的对象放在 extras 中,例如:

        private fun displayCategoryItems(cat: CategoryModel) {
    
                val categoryItemsIntent = Intent(this, 
                CategoryItemsActivity::class.java)?.apply{
                       putExtra(categoryObjKey, data)
                }
    
               startActivityForResult(categoryItemsIntent,mainActivityReqCode)
    
        }
    

    或者这样传递:

        private fun displayCategoryItems(cat: Any) {
                val categoryItemsIntent = Intent(this, 
                CategoryItemsActivity::class.java)?.apply{
                       putExtra(categoryObjKey, cat as CategoryModel)
                }
    
               startActivityForResult(categoryItemsIntent,mainActivityReqCode)
    
        }
    

    【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2022-01-13
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    相关资源
    最近更新 更多