使用Java开发时候,页面之间的跳转都是采用Serializable和Parseable进行传递,Kotlin也可以采用这种方式实现传递,但是Kotlin里面的Bean中要去重写一堆Parseable的方法,代码看起来就特别臃肿,我就采用下面一种方式进行传递,代码很简洁明了。
Kotlin写法:
data class Datas(
var checkCarDealerSimilarResponseList: List<CheckCarDealerSimilarResponse> = listOf(),
var similarReason: String = ""
) : CommonConfig()
继承的CommonConfig代码:
open class CommonConfig {
companion object {
fun <T> fromJson(json: String, clazz: Class<T>): T {
return Gson().fromJson(json, clazz)
}
}
fun toJson(): String {
return Gson().toJson(this)
}
}
下面是我的页面之间的传递方法:
// 传递
var listData: Datas = Datas()
val intent = Intent(this, SearchActivity::class.java)
intent.putExtra("data", listData.toJson())
startActivity(intent)
// SearchActivity页面接收:
private fun getExtra() {
val datas = CommonConfig.fromJson(intent.getStringExtra("data"), Datas::class.java)
}
使用方法:
1、在你的data class 中去继承CommonConfig()
2、传递时候调用 .toJson()方法
3、接收代码中用Gson()生成对应的实体就行了,非常简单。