Activityに値を渡して画像を表示させようと思った。Twitter4Jを使っていた。
tweetはtwitter4j.Status
シリアライズ
Bundle bundle = new Bundle(); bundle.putSerializable("ExtendedMediaEntities", tweet.getExtendedMediaEntities()); ....
デシリアライズ
Bundle bundle = getIntent().getExtras();
ExtendedMediaEntity[] mediaEntities = (ExtendedMediaEntity[])bundle.getSerializable("ExtendedMediaEntities");
と書いた所Android5.0.2のSO-02gでは意図した通りに動いたが、Android4.2.2のFJL22ではClassCastExceptionが発生した。
java.lang.Object[] cannot be cast to twitter4j.ExtendedMediaEntity[]
軽く調べたけれど原因は不明。
Twitter4JのExtendedMediaEntitiesだけじゃなくて他のでもなのかとか後で調べたい
対処方法
配列ではなくコレクションを使った。
シリアライズ
Bundle bundle = new Bundle(); bundle.putSerializable("ExtendedMediaEntities", new ArrayList<>(Arrays.asList(tweet.getExtendedMediaEntities()))); ....
デシリアライズ
Bundle bundle = getIntent().getExtras(); ArrayList<ExtendedMediaEntity> mediaEntities = (ArrayList<ExtendedMediaEntity>)bundle.getSerializable("ExtendedMediaEntities");