对象中的list如何Parcelable序列化
时间: 2024-02-01 14:13:32 浏览: 24
在 Android 中,我们可以使用 Parcelable 接口来序列化对象,以便在 Activity 之间或进程之间传递。如果对象中有 List 属性,我们可以通过以下步骤将其序列化:
1. 在对象中实现 Parcelable 接口。
2. 在 writeToParcel 方法中将 List 属性写入 Parcel 对象。
3. 在构造方法中从 Parcel 对象中读取 List 属性。
以下是一个示例:
```
public class MyObject implements Parcelable {
private List<String> myList;
public MyObject(List<String> myList) {
this.myList = myList;
}
protected MyObject(Parcel in) {
myList = new ArrayList<>();
in.readList(myList, String.class.getClassLoader());
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeList(myList);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<MyObject> CREATOR = new Creator<MyObject>() {
@Override
public MyObject createFromParcel(Parcel in) {
return new MyObject(in);
}
@Override
public MyObject[] newArray(int size) {
return new MyObject[size];
}
};
}
```
在上面的示例中,我们使用了 `readList()` 和 `writeList()` 方法来读写 List 属性。注意在 `writeToParcel()` 方法中,我们将 List 写入了 Parcel 对象中,而在构造方法中,我们从 Parcel 对象中读取 List。