0

有人可以解释为什么这段代码不起作用吗?

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));

我期望得到的:

  • HashMap是可分割的。tmp1应该相等tmp2

我实际得到的(LogCat):

  • 调试: 在:{}
  • 警告:键是VAR预期Parcelable的,但值是java.util.HashMap. 已返回默认值<null>
  • 警告:尝试强制转换生成的内部异常:java.lang.ClassCastException: java.util.HashMap
  • 调试: OUT:空
4

1 回答 1

3

我想你错了HashMap不是。但是,它是,因此您要添加额外内容并尝试将其读取为,这会导致错误。 ParcelableSerializableSerializableParcelable

于 2012-05-08T13:00:09.553 回答