Parcel Lista de Lista de objeto Parcelable

Así que he parcelado listas antes, sin embargo, estoy tratando de paquete de mi GameBoard objeto, que en realidad tiene una List<List<Tile>> . Tile mosaico implementa parcelable, pero no estoy seguro exactamente cómo parcelar el List<List> . Esto es lo que he probado:

 public class GameBoard implements Parcelable { private String _id; public String getId() { return _id; } public void setId(String id) { _id = id; } private List<List<Tile>> _tiles; public List<List<Tile>> getTiles() { return _tiles; } public void setTiles(List<List<Tile>> tiles) { _tiles = tiles; } public GameBoard(Parcel in) { _id = in.readString(); in.readList(_tiles, ArrayList.class.getClassLoader()); } public GameBoard() { } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(_id); parcel.writeList(_tiles); } public static final Parcelable.Creator<GameBoard> CREATOR = new Parcelable.Creator<GameBoard>() { public GameBoard createFromParcel(Parcel in) { return new GameBoard(in); } public GameBoard[] newArray(int size) { return new GameBoard[size]; } }; 

La clase de mosaico implementa correctamente parcelable, no estoy exactamente seguro de cómo leer / escribir la List<List>> al parcelar esta clase. ¿Algunas ideas?

Basándome en los comentarios, extendí la clase ArrayList con mi clase personalizada e implementé parcelable:

 public class TileList extends ArrayList<Tile> implements Parcelable { public TileList(){ super(); } protected TileList(Parcel in) { in.readTypedList(this, Tile.CREATOR); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeTypedList(this); } public static final Parcelable.Creator<TileList> CREATOR = new Parcelable.Creator<TileList>() { public TileList createFromParcel(Parcel in) { return new TileList(in); } public TileList[] newArray(int size) { return new TileList[size]; } }; } 

Y cambios leves a mi otra clase:

 public class GameBoard implements Parcelable { private String _id; public String getId() { return _id; } public void setId(String id) { _id = id; } private List<TileList> _tiles; public List<TileList> getTiles() { return _tiles; } public void setTiles(List<TileList> tiles) { _tiles = tiles; } public GameBoard(Parcel in) { _id = in.readString(); _tiles = new ArrayList<>(); in.readTypedList(_tiles, TileList.CREATOR); } public GameBoard() { } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(_id); parcel.writeTypedList(_tiles); } public static final Parcelable.Creator<GameBoard> CREATOR = new Parcelable.Creator<GameBoard>() { public GameBoard createFromParcel(Parcel in) { return new GameBoard(in); } public GameBoard[] newArray(int size) { return new GameBoard[size]; } }; } 
  • Combinar paquetes de diferentes proyectos en un solo proyecto en eclipse
  • Java - android UDP falta de fiabilidad
  • Nombres de paquetes para dominios que terminan en .do
  • ¿Puedo usar una cadena de recursos para un nombre de paquete?
  • ¿Cuál es la convención para nombres de paquetes java sin una asociación de dominio?
  • Envía la transmisión de un apk / paquete a otro apk / package
  • ¿Cómo enviar parámetros desde un clic de notificación a una actividad?
  • Identificador de paquete no válido al obtener la bolsa para el número de recurso 0xffffffff
  • ¿Cuál es la diferencia entre los paquetes android.opengl y javax.microedition.khronos.opengles?
  • Reacondicionamiento .jar-s en Android .aar library
  • La importación android.support no se puede resolver
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.