有人可以解释为什么这段代码不起作用吗?
Intent i = new Intent(this.context, SomeClass.class);
HashMap<String, String> tmp1 = new HashMap<String, String>();
Log.d(TAG, "IN: " + String.valueOf(tmp1));
i.putExtra("VAR", tmp1);
HashMap<String, String> tmp2 = i.getParcelableExtra("VAR");
Log.d(TAG, "OUT: " + String.valueOf(tmp2));
我期望获得:
tmp1
应该等于tmp2
。我实际得到的(LogCat):
VAR
预计Parcelable
,但值为java.util.HashMap
。返回了默认值<null>
。java.lang.ClassCastException: java.util.HashMap
答案 0 :(得分:2)
我认为你错了,HashMap
不 Parcelable
。但是Serializable
是Serializable
,因此您要添加Parcelable
个额外内容并尝试将其读作{{1}},这会导致错误。