我的班级有一个 ArrayList。我试图通过 Parcelable 传递它,但出现错误。下面是类的结构和代码本身。如何传递这样的数据类型?
班级本身
class Lists{
String name_opt;
byte[] value;
}
class ConfigStruct{
String page;
String name;
String type;
byte[] val_size;
byte[] max_lenght;
byte[] min_lenght;
byte[] value;
List<Lists> list;
View view;
}
转移尝试
public class ConfigStructParcelable implements Parcelable {
List<Tabs.ConfigStruct> structs;
public ConfigStructParcelable(ArrayList<Tabs.ConfigStruct> data){
this.structs = data;
}
public ConfigStructParcelable(Parcel in){
this.structs = in.readArrayList(null);//?
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeList(structs); //?
}
public static Creator<ConfigStructParcelable> CREATOR = new Creator<ConfigStructParcelable>() {
@Override
public ConfigStructParcelable createFromParcel(Parcel source) {
return new ConfigStructParcelable(source);
}
@Override
public ConfigStructParcelable[] newArray(int size) {
return new ConfigStructParcelable[size];
}
};
}
我用“//?”标记 需要帮助的地方。链接帖子没有帮助。
要将其对象传递给 Parcel 的每个类都必须实现 Parcelable 接口
1)在类中
Lists实现接口Parcelable和构造函数Lists(Parcel in)2)在类中
ConfigStruct实现接口Parcelable和构造函数ConfigStruct(Parcel in)在这堂课中:
要写入
List<Lists> list重写Parcel函数writeToParcel(Parcel out),请使用out.writeTypedList(list)要从构造函数中获取
List<Lists> list,请使用ParcelConfigStruct(Parcel in)in.readTypedList(list, Lists.CREATOR);