【发布时间】:2013-10-22 15:22:25
【问题描述】:
我正在尝试使用intent.putExtra() 传递ArrayList<Polygon>。
我得到 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> 来保存一个带有一些getter 和setter 的多边形的点列表,仅此而已。我在 Polygon 类上实现了 Serializable,但我从上面的代码中得到了那个异常。
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);
}
}
有什么想法吗?
【问题讨论】:
-
如果不发布实现(代码),您可能不会获得太多有用的帮助。
-
您好,我已经添加了一些代码。
-
好吧,当我这么说时,我指的是来自处理序列化的
Polygon类的代码。 但是,既然你发布了,this.polygons是什么,你为什么要把它转换成ArrayList<Polygon>?我以为它已经是那种类型了。 -
我不需要强制转换,我只是想看看它是否有所作为:) this.polygons 被定义为 ArrayList
多边形。你对处理序列化是什么意思,我认为实现 Serializable 就足以发送这个字段了?如果有帮助,我已经添加了上面的 Polygon 类。
标签: android serializable