我正在做一个“类似绘图”的项目,它允许用户在ActivityB中绘制路径,然后在返回ActivityA时获取剪切的照片,然后他们可以选择将其保存以便下次再次进行编辑。
应该传递/保存的最重要和唯一的信息是用户绘制的(x,y)点。我使用两个float数组来存储值,并将它们作为额外的值传递给ActivityA。 (两个float []的大小都有限,500。)
intent.putExtra("EXTRA_X", xPoints);
intent.putExtra("EXTRA_Y", yPoints);
保存到SQLite时,我保存了两个从float []转换的字符串,因为SQLite不支持保存数组。
private String floatArrToStr(float[] arr) {
StringBuilder s = new StringBuilder();
for (int i = 0 ; i < length ; i++) {
s.append(arr[i]);
s.append(",");
}
return s.toString();
}
我的问题是,这是通过和保存积分的最佳方法吗?使用Parcelables会更好(Android: Pass List<GeoPoint> to another Activity)吗?
答案 0 :(得分:0)
您可以跨活动传递Serializable
。
Class PathPoint implements Serializable {
public float x;
public float y;
}
然后ArrayList<PathPoint>
也是可序列化的,可以放入Bundle
并发送。