2012-03-07 13 views
1

我想从意图A到意图B传递此结构: Hashtable> parsedData;Android从两个活动传递散列表

我这样做:// 意图

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

//意图乙

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

这回placemarkOnMap = {}但placemarkOnMap不在活动A.空

什么是错的? 谢谢。

+1

http://stackoverflow.com/questions/5566921/androidpassing-a-hash-map-between-activities – 2012-03-07 16:20:47

+0

这些问题表明如何通过静态字段在活动之间传递对象。 – 2012-03-07 16:25:45

回答

0

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

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

除此之外,请确保您的哈希表中有值,你把它的意图权之前:

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

可以替换。由于事端取得了“placemarkOnMap”的反序列化,这意味着你已经放置了某些东西,但它是空的。

+1

我有这个异常:java.lang.ClassCastException:java.util.HashMap – michele 2012-03-07 16:38:35

+0

我的散列表在活动A – michele 2012-03-07 16:40:31

+0

@michele中有值你确定placemarkOnMap不是HashMap而是一个Hashtable? – toto2 2012-03-07 17:03:41

相关问题