Я пытаюсь передать ArrayList<Polygon>
с помощью intent.putExtra()
.ArrayList Serializable Android
Я получаю IOException Запись сериализуемого объекта (name = Polygon.polygon).
Polygon - это класс, который я сделал, и у него есть Serializable для этого класса.
Intent intent = new Intent(this, Main.class);
intent.putExtra("polygons", (ArrayList<Polygon>)this.polygons);
startActivity(intent);
Класс Polygon имеет ArrayList<Point>
провести список точек многоугольника с несколькими добытчиками и сеттеров, это все. У меня есть Serializable в классе Polygon, но я получаю это исключение из вышеуказанного кода.
public class Polygon implements Serializable{
ArrayList<Point> polygon;
public Polygon(){
polygon = new ArrayList();
}
public int getSize(){
return polygon.size();
}
public ArrayList<Point> getPointArray(){
return this.polygon;
}
public void addPoint(int x, int y, int mapWidth, int mapHeight, int canvasWidth, int canvasHeight){
//going to scale up here
float scaleX = mapWidth/canvasWidth;
float scaleY = mapHeight/canvasHeight;
polygon.add(new Point((int)(x*scaleX),(int)(y*scaleY)));
}
public void removePoint(int index){
polygon.remove(index);
}
}
Любые идеи?
Без проводки реализации (код), вы, вероятно, не получите много полезной помощь. – Geobits
HI Я добавил код. – jonny
Ну, когда я это сказал, я имел в виду код из класса «Полигон», который обрабатывает сериализацию. ** Но **, так как вы разместили это, что такое 'this.polygons', и зачем вам его бросать в' ArrayList '? Я предположил, что это уже будет этот тип. –
Geobits