Dal*_*Zak 7 android parcelable
我希望我的数据类能够实现Parcelable,因此它可以在Activities之间共享,但是它也需要引用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];
}
};
}
Run Code Online (Sandbox Code Playgroud)
实现Parcelable的类如何引用Context以便保存到SQLiteDatabase?
Parcelable接口类似于Java接口Serializable.实现此接口的对象应该是可序列化的.这意味着应该可以将对象转换为可以保存在文件中的表示,例如
字符串,int,float或double等很容易,因为它们都有字符串表示.Context类显然不是可序列化的,也不是可分区的,因为它可以是一个Activity.
如果要将活动状态保存到数据库,则应该找到另一种方法.
| 归档时间: |
|
| 查看次数: |
3646 次 |
| 最近记录: |