3

@Parcelable を使用した複雑なクラスがあります (Parceler ライブラリhttps://github.com/johncarl81/parcelerを使用しています)

@Parcel
public class Event {
    public int id;
    public String title;
    public String description;
    public String resourceURL;
    public List<Url> urls;
    public Date modified;
    public Date start;
    public Date end;
    public ImageInfo thumbnail;
    public ItemList comics;
    public ItemList stories;
    public ItemList series;
    public CharacterList characters;
    public CreatorList creators;
    public Item next;
    public Item previous;
}

このクラスには他にも多くのオブジェクトがありますが、それらはほとんどが文字列です。

次のようにメインのアクティビティにラップしました。

Intent intent = new Intent(getApplicationContext(), EventDescriptionActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelable("event", Parcels.wrap(eventList.get(position)));
intent.putExtras(bundle);
startActivity(intent);

イベントのリスト (eventList) があり、リスト内の 1 つのオブジェクトを別のアクティビティに送信しようとしています。

次のような他のアクティビティでそれをアンラップします。

Event event = Parcels.unwrap(this.getIntent().getExtras().get("event"));

私の onCreate() の中で

しかし、パラメーターの下に次のような赤い線が表示されます。

"unwrap (android.os.Parcelable) in Parcels cannot be applied to (java.lang.Object)"
4

2 に答える 2

0

そのため、エラー行で Alt Enter を押しただけで、適切な型キャストが提供されました...もっと頻繁に Alt Enter する必要があります

于 2015-02-22T20:34:51.250 に答える