这个Scean类实现了Parcelable接口,同时其内部的成员变量List<SubScean> subSceanList 中的SubScean类也实现了Parcelable接口。
public class Scean implements Parcelable {
public String name;
public String voiceName;
public String picName;
public String introduction;
public String folderName;
public Double rightTopLon;
public Double rightTopLat;
public Double leftBottomLon;
public Double leftBottomLat;
public int picPosition;
public int picLength;
public int introPosition;
public int introLength;
public String cityName;
public int totalLength;
private List<SubScean> subSceanList = new ArrayList<SubScean>();
public Scean() {
// do nothing;
}
private Scean(Parcel in) {
name = in.readString();
voiceName = in.readString();
picName = in.readString();
introduction = in.readString();
folderName = in.readString();
rightTopLon = in.readDouble();
rightTopLat = in.readDouble();
leftBottomLon = in.readDouble();
leftBottomLat = in.readDouble();
picPosition = in.readInt();
picLength = in.readInt();
introPosition = in.readInt();
introLength = in.readInt();
cityName = in.readString();
totalLength = in.readInt();
in.readTypedList(subSceanList, SubScean.CREATOR);// return void, it pass
// List to the first
// arg
}
public void addSubScean(SubScean subScean) {
subSceanList.add(subScean);
}
public SubScean getSubScean(int position) {
return subSceanList.get(position);
}
public int getLength() {
return subSceanList.size();
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.name);
dest.writeString(this.voiceName);
dest.writeString(this.picName);
dest.writeString(this.introduction);
dest.writeString(this.folderName);
dest.writeDouble(this.rightTopLon);
dest.writeDouble(this.rightTopLat);
dest.writeDouble(this.leftBottomLon);
dest.writeDouble(this.leftBottomLat);
dest.writeInt(picPosition);
dest.writeInt(picLength);
dest.writeInt(introPosition);
dest.writeInt(introLength);
dest.writeString(cityName);
dest.writeInt(totalLength);
dest.writeTypedList(subSceanList);
}
public static final Parcelable.Creator<Scean> CREATOR = new Creator<Scean>() {
@Override
public Scean[] newArray(int size) {
return new Scean[size];
}
@Override
public Scean createFromParcel(Parcel source) {
return new Scean(source);
}
};
}
下面是SubScean的代码
public class SubScean implements Parcelable {
public String subScenName;
public String voiceName;
public String picName;
public String folderName;
public String voiceSuffix;
public Double longitude;
public Double latitude;
public int picPosition;
public int picLength;
public String cityName;
public String scenicName;
public int introPosition;
public int introLength;
public SubScean() {
}
private SubScean(Parcel in) {
this.subScenName = in.readString();
this.voiceName = in.readString();
this.picName = in.readString();
this.folderName = in.readString();
this.longitude = in.readDouble();
this.latitude = in.readDouble();
picPosition = in.readInt();
picLength = in.readInt();
cityName = in.readString();
scenicName = in.readString();
introPosition = in.readInt();
introLength = in.readInt();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(subScenName);
dest.writeString(voiceName);
dest.writeString(picName);
dest.writeString(folderName);
dest.writeDouble(longitude);
dest.writeDouble(latitude);
dest.writeInt(picPosition);
dest.writeInt(picLength);
dest.writeString(cityName);
dest.writeString(scenicName);
dest.writeInt(introPosition);
dest.writeInt(introLength);
}
public static final Parcelable.Creator<SubScean> CREATOR = new Creator<SubScean>() {
@Override
public SubScean createFromParcel(Parcel source) {
return new SubScean(source);
}
@Override
public SubScean[] newArray(int size) {
return new SubScean[size];
}
};
}
转载于:https://www.cnblogs.com/BlogCommunicator/p/7490481.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)