【问题标题】:Passing custom HashMap between activities in Android在 Android 中的活动之间传递自定义 HashMap
【发布时间】:2015-10-14 11:06:06
【问题描述】:

我有一个 HashMap,它接受一个字符串 ID(聊天室的 ID)作为键,并将来自该特定房间的所有聊天存储在一个数组列表中,如下所示:

    HashMap<String, ArrayList<ChatMessage>> chatHistoryHashMap = new HashMap<String, ArrayList<ChatMessage>>();

这是在 RoomActivity 中创建的,我想将它传递给 ChatActivity。我怎么能做到这一点?我尝试将其设为公共静态,但在 ChatActivity 中使用“put”方法似乎无济于事,不知道为什么。

我还需要在 ChatActivity 中按下后退按钮时将此 HashMap 传递回 RoomActivity。

我需要使用 Intent 吗?

【问题讨论】:

  • 如果它是静态的,它没有理由不工作!你能给我们看一下代码吗?当你把它变成静态的时候它是什么样子的。不仅仅是初始化。
  • 传递不解析@MarkKeen,如果你只想序列化它你仍然必须传递它。
  • 我把它设为静态的,我可以使用它,但 ChatActivity 类中的值从未改变,很多人似乎有这个问题,但我无法得到解决方案...stackoverflow.com/questions/25226336/…@ 987654322@

标签: java android android-intent android-activity hashmap


【解决方案1】:

当您在您的类中设置任何静态内容时,该变量对该包中的所有类都是可见的,因此您无法在另一个活动中获取该值的情况不会发生。

要访问静态变量,您可以创建类的对象,也可以使用函数名直接访问它。

你也可以使用intent.putExtra()和intent.getExtra()来传递对象

【讨论】:

  • Static 不会使其可用于包中的其他类。您可以拥有一个只能在该类中访问的私有静态变量。
  • 我把它设为静态的,我可以使用它,但 ChatActivity 类中的值从未改变,很多人似乎有这个问题但我无法得到解决方案...stackoverflow.com/questions/25226336/…@ 987654322@
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多