Android - реализация Parcelable внутреннего класса
Я знаю, как реализовать простой класс Parcelable с открытыми переменными, но приведенный ниже класс несколько сложнее. Как я могу реализовать интерфейс Parcelable, если у этого класса есть внутренний класс и ListEntity? Я даже не уверен, как начать. Любая подробная информация о том, как это сделать, будет принята с благодарностью.
import android.os.Parcel;
import android.os.Parcelable;
import java.util.List;
public class ResponsePlaceSearch implements Parcelable {
// *** Parcelable methods are shown below (Begin) ***
protected ResponsePlaceSearch(Parcel in) {
}
public static final Creator<ResponsePlaceSearch> CREATOR = new Creator<ResponsePlaceSearch>() {
@Override
public ResponsePlaceSearch createFromParcel(Parcel in) {
return new ResponsePlaceSearch(in);
}
@Override
public ResponsePlaceSearch[] newArray(int size) {
return new ResponsePlaceSearch[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
// *** (End) ***
private List<ListEntity> list;
public void setList(List<ListEntity> list) {
this.list = list;
}
public List<ListEntity> getList() {
return list;
}
public static class ListEntity {
private int id;
private String name;
private CoordEntity coord;
private int dt;
private WindEntity wind;
private SysEntity sys;
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setCoord(CoordEntity coord) {
this.coord = coord;
}
public void setDt(int dt) {
this.dt = dt;
}
public void setWind(WindEntity wind) {
this.wind = wind;
}
public void setSys(SysEntity sys) {
this.sys = sys;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public CoordEntity getCoord() {
return coord;
}
public int getDt() {
return dt;
}
public WindEntity getWind() {
return wind;
}
public SysEntity getSys() {
return sys;
}
public static class CoordEntity {
private double lon;
private double lat;
public void setLon(double lon) {
this.lon = lon;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLon() {
return lon;
}
public double getLat() {
return lat;
}
}
public static class WindEntity {
private double speed;
private double deg;
public void setSpeed(double speed) {
this.speed = speed;
}
public void setDeg(double deg) {
this.deg = deg;
}
public double getSpeed() {
return speed;
}
public double getDeg() {
return deg;
}
}
public static class SysEntity {
private String country;
public void setCountry(String country) {
this.country = country;
}
public String getCountry() {
return country;
}
}
}
}