1

私は、ユーザーが ActivityB でパスを描画し、ActivityA に戻ったときにクリップされた写真を取得できるようにする「描画のような」プロジェクトを行っています。このプロジェクトでは、次回編集のために保存することを選択できます。

最も重要で唯一の情報を渡す/保存する必要があるのは、ユーザーが描画する (x,y) ポイントです。2 つの float 配列を使用して値を格納し、それらを追加として ActivityA に渡します。(両方の float[] のサイズは 500 に制限されています。)

intent.putExtra("EXTRA_X", xPoints);
intent.putExtra("EXTRA_Y", yPoints);

SQLite に保存するときは、float[] から変換された 2 つの文字列を保存します。これは、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 )?

4

1 に答える 1

0

Serializableアクティビティ全体を渡すことができます。

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

次にArrayList<PathPoint>、シリアル化可能であり、に配置してBundle送信することができます。

于 2012-08-25T07:10:58.587 に答える