【发布时间】:2021-03-14 07:09:38
【问题描述】:
我将sendData从StartActivity发送到ResultActivity。
val sendData = SendData(10, "xyz", "yss")
sendData.e = 933
sendData.f = "hello"
sendData.g = 39
// Log.d("A", "${sendData.toString}")
val intent = Intent(this@StartActivity, ResultActivity::class.java)
intent.putExtra(RESULT_DATA, sendData)
startActivity(intent)
sendData = intent.extras!!.getParcelable(RESULT_DATA)
// Log.d("B", "${sendData.toString}")
模型类如下所示。
@Parcelize
data class SendData(var a: Int, var b: String, var c: String) : Parcelable {
var e: Int? = null
var f: String? = null
var g: Int? = null
var isClicked = false
override fun toString(): String{
return JsonUtil.toJson(this) // custom util
}
}
但是当我检查 Log-A 时,Log-B。
// Log-A
{
"a": 10,
"b": "xyz",
"c": "yss",
"e": 933,
"f": "hello",
"g": 39,
"isClicked": false
}
// Log-B
{
"a": 10,
"b": "xyz",
"c": "yss",
"isClicked": false
}
因此,定义为 Nullable 的成员在传递后为空。 这段代码有什么问题?
【问题讨论】:
标签: android kotlin android-intent parcelable data-class