以下は私のParcelableクラスの例です。ご覧のとおり、私はParcel
にアクティビティを入れたいですが、どうすればいいですか?私はActivity
のソースコードを調べますが、Parcelable
でもSerializable
でもありません。アクティビティを小包に入れることは可能ですか?
public class MyParcelable implements Parcelable {
private Activity mActivity;
private int mData;
private String mName;
@Override
public void writeToParcel(Parcel out, int flags) {
//out.writeX(mActivity);
out.writeInt(mData);
out.writeString(mName);
}
private MyParcelable(Parcel in) {
//mActivity = in.readX();
mData = in.readInt();
mName = in.readString();
}
public MyParcelable(Activity activity, int data, String name) {
mActivity = activity;
mData = data;
mName = name;
}
@Override
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
@Override
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
@Override
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}
小包で 'Activity'を置くことの必要性は何ですか?いいえ、また、それはあなたが最も可能性が高い何をしたいのかずっと意味 –
することは、あなたはStringとしてその名を送信することができます。アクティビティ自体は「単なるクラス」ではなく、画面内にコンテンツを表示する大規模なシステムの一部であり、それ自体では、自分自身を再構築するために必要なものすべてが含まれていません。 – Selvin
は、Activityクラスを送信することであることはありません – etan