我希望我的数据类实现 Parcelable,以便它可以在活动之间共享,但是它还需要引用 Context,以便可以将字段保存到 SQLiteDatabase。
然而这是一个问题,因为 Parcelable.Creator 方法 createFromParcel 只有一个参数 Parcel。
public abstract class Record implements Parcelable {
protected Context context;
protected String value;
public Record(Context context) {
this.context = context;
}
public Record(Parcel parcel) {
this.value = parcel.readString();
}
public void save() {
//save to SQLiteDatabase which requires Context
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flag) {
parcel.writeString(value);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Record createFromParcel(Parcel parcel) {
return new Record(in);
}
public Record[] newArray(int size) {
return new Record[size];
}
};
}
实现 Parcelable 的类如何也引用 Context 以便保存到 SQLiteDatabase?