我正在 android 中编程(但对于这个问题,它可能无关紧要)。我有一个定义如下的 kotlin 地图:
var filters: MutableMap<String, Any?>
Run Code Online (Sandbox Code Playgroud)
我需要将它传递到另一个屏幕(android 中的 Activity),为此我通常使它在 java 中可序列化。但在 kotlin 中,此数据结构不可序列化。让我们看看我想要做什么:
var b = Bundle()
b.putSerializable("myFilter",filters) //- this gives a compile error that filters is not serializable.
Run Code Online (Sandbox Code Playgroud)
我尝试调用 filters.toMap() 但这也不起作用。这是如何在 kotlin 中完成的?我如何将地图发送到 android 中的另一个屏幕?
Jit*_*a A 10
使用 HashMap 代替 MutableMap。
该包需要一个 Serialiable 对象。MutableMap 是一个接口,因此不可序列化。HashMap 是一个实现可序列化的具体类。您可以使用任何实现可序列化的 Map 的具体子类
创建一个哈希图:
val filters: HashMap<String, Any?> = HashMap()
filters.put("a", 2)
Run Code Online (Sandbox Code Playgroud)
或者
val filters: HashMap<String, Any?> = hashMapOf("a" to 2)
Run Code Online (Sandbox Code Playgroud)
放入捆绑包:
val b = Bundle()
b.putSerializable("myFilter", filters)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4510 次 |
| 最近记录: |