【问题标题】:Android Passing hashtable from two activitiesAndroid从两个活动传递哈希表
【发布时间】:2012-03-25 04:44:48
【问题描述】:

我想将此结构从意图 A 传递给意图 B: Hashtable> parsedData;

我这样做: //意图A

Intent intent = new Intent(A.this,B.class);
intent.putExtra("placemarkOnMap", placemarkOnMap);`

//意图B

Serializable data = getIntent().getSerializableExtra("placemarkOnMap"); 
placemarkOnMap = new Hashtable<String, Hashtable<String,String>> ((Hashtable<String, Hashtable<String,String>>)data); 

这返回 placemarkOnMap = {} 但 placemarkOnMap 在活动 A 中不为空。

怎么了? 谢谢。

【问题讨论】:

标签: java android android-activity hashtable


【解决方案1】:

您不需要创建一个新的 Hashtable 并使用您从意图中获得的那个来初始化它。这个:

  placemarkOnMap = new Hashtable<String, Hashtable<String,String>> ((Hashtable<String, Hashtable<String,String>>)data);

可以替换为:

placemarkOnMap = (Hashtable<String, Hashtable<String,String>>)data;

除此之外,请确保在将 Hashtable 放入 Intent 之前,其中包含值。由于某些东西会为“placemarkOnMap”而反序列化,这意味着您已经在其中放置了一些东西,但它是空的。

【讨论】:

  • 我有这个异常:java.lang.ClassCastException: java.util.HashMap
  • 我的哈希表在 Activity A 中有值
  • @michele 你确定 placemarkOnMap 不是 HashMap 而是一个 Hashtable?
  • 是的,这是声明:private Hashtable> placemarkOnMap = new Hashtable>();
猜你喜欢
  • 2011-07-30
  • 1970-01-01
  • 2013-09-17
  • 2019-03-16
  • 2011-11-28
  • 2018-05-31
  • 1970-01-01
  • 2011-12-20
  • 2011-04-23
相关资源
最近更新 更多