1

我正在做一个“类似绘图”的项目,它使用户能够在 ActivityB 中绘制路径,然后在返回 ActivityA 时获取剪辑的照片,他们可以在其中选择保存以供下次再次编辑。

应该传递/保存的最重要和唯一的信息是用户绘制的 (x,y) 点。我使用两个浮点数组来存储值,并将它们作为额外的值传递给 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:将 List<GeoPoint> 传递给另一个 Activity)吗?

4

1 回答 1

0

You can pass a Serializable across activities.

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

then ArrayList<PathPoint> is also Serializable, can be placed into a Bundle and sent across.

于 2012-08-25T07:10:58.587 回答