android - 将 LinkedHashMap 发送到 Intent

标签 android android-intent linkedhashmap

我想将 LinkedHashMap 发送到另一个 Intent。但是我不知道什么方法是允许的。

Bundle extras = getIntent().getExtras();
  LinkedHashMap<Integer, String[]> listItems = extras.get(LIST_TXT);

最佳答案

您不能可靠地发送 LinkedHashMap 作为 Intent extra。当您使用 LinkedHashMap 调用 putExtra() 时,Android 会发现该对象实现了 Map 接口(interface),因此它将名称/值对序列化为Intent 中的 extras Bundle。当你想在另一边提取它时,你得到的是一个HashMap,而不是一个LinkedHashMap。不幸的是,您获得的这个 HashMap 丢失了您最初想要使用 LinkedHashMap 的原因。

唯一可靠的方法是将 LinkedHashMap 转换为有序数组,将数组放入 Intent 中,从 Intent 中提取数组 在接收端,然后重新创建 LinkedHashMap

参见 my answer to this question了解更多细节。

关于android - 将 LinkedHashMap 发送到 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164050/

相关文章:

android - VS Android 模拟器问题。 "Preparing virtual machine..."

android - 很长的 gradle 构建时间 - Android

android - ZXing如何扫描二维码和一维条码?

android - 如何将我自己的应用程序的 APK 文件保存在 sd 卡中并通过蓝牙共享? (仅通过使用代码和 Intent )

Java 链接 HashMap : what's the difference in these two?

java - LinkedHashMap 中的不同错误 - java8.1

android - 使用 Android NDK 加密从普通 Android 应用程序传递的数据

Java(安卓): Data in the string pattern

android - 不能在一个 Intent 中同时设置 FLAG_ACTIVITY_SINGLE_TOP 和 FLAG_ACTIVITY_CLEAR_TOP 吗?

mysql - 如何过滤 hashMap 的结果以选取以某个字母开头的所有键 Groovy