我正在尝试将MutableList<Point>
数组列表作为Extra从Intent发送到Kotlin中的另一个。
声明列表:
private var thePoints: MutableList<Point> = mutableListOf()
这是我向其中添加项目的方式:
if (startStationPoint != null) {
thePoints.add(startStationPoint)
}
并且正在使用此方法将其发送给其他活动:
navigationActivity.putParcelableArrayListExtra(
"thePoints",
thePoints)
它给了我这个错误:
Type mismatch:
Required: ArrayList<out Parcelable>!
Found: MutableListM<Point>
就像使用putParcelableArrayListExtra
一样,因为没有这样的事情可以将点数组列表多余。
答案 0 :(得分:1)
该错误说明您将可变列表用作参数,但必须使用数组
thePoints.toList().toTypedArray()
我不确定这是否行得通,因为Point无法满足条件
您可以创建一个代表该点的类
data class SerializablePoint(val longitude: Long, val latitude: Long) : Serializable
然后使用.map
进行转换。
或者您也可以使用parceleable。
另一种选择是尝试使用Pair
,它是Kt API,但我也不知道是否符合可仿性或可序列化性条件。
要弄清ctrl,请单击这些类中的任何一个,然后查看是否在任何时候实现了可序列化或可继承的,否则将需要转换为自定义类。
答案 1 :(得分:0)
您可以使用Google Gson将对象转换为字符串,然后将其作为字符串传递。 从接收端将字符串转换为原始对象。
请参阅->