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

  • デバッグ: IN:{}
  • 警告:キーが必要VARですParcelableが、値はでしたjava.util.HashMap。デフォルト値<null>が返されました。
  • 警告:生成された内部例外をキャストしようとしました:java.lang.ClassCastException: java.util.HashMap
  • デバッグ: OUT:null
4

1 に答える 1

3

私はあなたが間違っていると思います、そうでHashMapはありません Parcelable。ただしSerializable、これは、余分なものを入れて、Serializableそれをとして読み取ろうとしているParcelableため、エラーが発生します。

于 2012-05-08T13:00:09.553 に答える