要使具有List<CustomObject>的对象成为Parcelable,需要按照以下步骤进行操作:
public class CustomObject implements Parcelable {
// 类的成员变量
// 构造函数
// Getter和Setter方法
// Parcelable接口方法实现
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// 将类的成员变量写入Parcel对象
}
// Parcelable.Creator接口实现
public static final Parcelable.Creator<CustomObject> CREATOR = new Parcelable.Creator<CustomObject>() {
@Override
public CustomObject createFromParcel(Parcel source) {
return new CustomObject(source);
}
@Override
public CustomObject[] newArray(int size) {
return new CustomObject[size];
}
};
// 构造函数,用于从Parcel对象中读取数据
private CustomObject(Parcel in) {
// 读取Parcel对象中的数据,并赋值给类的成员变量
}
}
public class ObjectWithList implements Parcelable {
private List<CustomObject> customObjectList;
// 构造函数
// Getter和Setter方法
// Parcelable接口方法实现
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(customObjectList);
}
// Parcelable.Creator接口实现
public static final Parcelable.Creator<ObjectWithList> CREATOR = new Parcelable.Creator<ObjectWithList>() {
@Override
public ObjectWithList createFromParcel(Parcel source) {
return new ObjectWithList(source);
}
@Override
public ObjectWithList[] newArray(int size) {
return new ObjectWithList[size];
}
};
// 构造函数,用于从Parcel对象中读取数据
private ObjectWithList(Parcel in) {
customObjectList = new ArrayList<>();
in.readTypedList(customObjectList, CustomObject.CREATOR);
}
}
// 创建ObjectWithList对象
ObjectWithList objectWithList = new ObjectWithList();
// 设置customObjectList成员变量
// 将ObjectWithList对象放入Intent中
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("objectWithList", objectWithList);
startActivity(intent);
// 在接收端的Activity或Fragment中获取传递的ObjectWithList对象
ObjectWithList objectWithList = getIntent().getParcelableExtra("objectWithList");
// 使用objectWithList对象
这样,你就成功地使具有List<CustomObject>的对象成为Parcelable了。请注意,上述代码中的CustomObject和ObjectWithList是示例类名,你需要根据实际情况进行修改。
领取专属 10元无门槛券
手把手带您无忧上云