下面是我的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];
}
};
}
将“活动”放在包裹中需要什么? –
不,它也没有多大意义 – Selvin
你最想做的事是发送活动类,你可以发送它的名字作为一个字符串。活动本身不是“只是一个类”,它是一个在屏幕上显示内容的更大系统的一部分,它本身甚至不包含重建自己所需的所有内容。 – etan