kotlin @Parcelize序列化传值数据丢失


#1

版本:ext.kotlin_version = ‘1.3.61’
在 gradle 中

android {
    ...
   
    //使用Kotlin实验特性    
    androidExtensions {
        experimental = true
    }
}

//基类
@SuppressLint(“ParcelCreator”)
@Parcelize
open class BaseBean(val name: String="", val age: Int=0) : Parcelable{}

//子类继承 BaseBean
@SuppressLint(“ParcelCreator”)
@Parcelize
data class User(val phone: String="", val address: String="") :BaseBean(), Parcelable{}

获取服务器后 mUser={“name”:“张三”,“age”:20,“phone”:“13956854256”,“address”:“广州市天河区长兴路363号”}

通过Intent将mUser传递到OneActivity中
val intent=Intent()
intent.setClass(BaseApplication.getInstance(),OneActivity::class.java)
intent.putExtra(“Vos”,mUser)
startActivity(intent)

在OneActivity的onCreate方法中
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.one_activity)
mUser=intent.getParcelableExtra(“Vos”);
获取后打印结果:
mUser={“name”:"",“age”:0,“phone”:“13956854256”,“address”:“广州市天河区长兴路363号”}
}

这样传值是否错误,该如何处理


京ICP备16022265号-2 Kotlin China 2017 - 2018