在活动之间传递Point数组并将其保存在SQLite中的最佳方法

时间:2012-08-25 06:16:27

标签: android android-intent android-activity

我正在做一个“类似绘图”的项目,它允许用户在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)吗?

1 个答案:

答案 0 :(得分:0)

您可以跨活动传递Serializable

Class PathPoint implements Serializable {
  public float x;
  public float y;
}

然后ArrayList<PathPoint>也是可序列化的,可以放入Bundle并发送。