【发布时间】:2020-02-01 01:13:04
【问题描述】:
我正在尝试实现TypeConverter,但我得到了
这个错误:
无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器。
这个数据类:
@Entity
data class SubEmergencyData (
@PrimaryKey
var title: String,
@ColumnInfo (name = "image")
var image: String,
@TypeConverters(StepsConverters::class)
@ColumnInfo (name = "steps")
var steps: ArrayList<Stepdata>
) {
}
这是我的 TypeConverter:
class StepsConverters {
@TypeConverter
fun toStepDataList(optionValuesString: String?): ArrayList<Stepdata>? {
if (optionValuesString == null) {
return null
}
val gson = Gson()
val type = object : TypeToken<ArrayList<Stepdata?>?>() {}.type
return gson.fromJson<ArrayList<Stepdata>>(optionValuesString, type)
}
@TypeConverter
fun fromStepData(optionValues: ArrayList<Stepdata?>?): String? {
if (optionValues == null) {
return null
}
val gson = Gson()
return gson.toJson(optionValues)
}
}
这是步骤数据
@Entity
data class Stepdata (@PrimaryKey var num : Int,
@ColumnInfo (name = "title") var title: String,
@ColumnInfo (name = "content") var content : String,
@ColumnInfo (name = "image")var image: String) {
}
【问题讨论】:
-
Stepdata有什么相似之处?
标签: android kotlin android-room