1

AccActivity というカスタム オブジェクトの配列があります。

public class AccActivity {
    AccData Data;
    AccData fData;
    AccData lpfData;

    int[] crossings;
    float[] sd;
    int type = -1;
    private float[] minMax;
    float spread = 0.30f;
    int rate = 8;
    float alpha = 0.30f;
    float avResAcc;
    float[] peakDistances;
    int[] peakNumber;
    ArrayList<Integer> peakIndicesX;
    ArrayList<Integer> peakIndicesY;
    ArrayList<Integer> peakIndicesZ;

AccData オブジェクトは次のようになります。

public class AccData {
    private ArrayList<Float> xData;
    private ArrayList<Float> yData;
    private ArrayList<Float> zData;
    private float[] averageNoise;

今、私はインターネットで問題を調査しましたが、どうやらAndroidにデータを保存する3つのオプションがあるようです-それらはすべて私には適していないようです

SharedPrefs - いいえ。プリミティブ キー値の設定を保存するためです。

シリアライゼーション - ファイルへの保存 - わからない - 非カスタム オブジェクト タイプで使用された例しか見たことがないのですが、どうすれば回避できますか?

SQLite - いいえ、スタック オーバーフローに関する別の回答は次のように述べています。「カスタム オブジェクトをデータベースに保存するにはどうすればよいですか?

オブジェクト データベースを使用していない限り、必要ありません。オブジェクトの表現をデータベースに保存します。」

彼らが言及しているこのオブジェクト データベースとは何ですか?

私が持っているこのarrayListを保存して取得する方法を誰かに教えてもらえますか?

編集: SDK の互換性は気にせず、これは個々の研究プロジェクトであるため、最高のものを選択できます

EDIT2: 目標: 電話の電源を切ってから入れ直した後、アプリを開いたときに ArrayList データが自動的に取得されるようにします。

4

3 に答える 3

1

非常によく使用できますSerialization。カスタム オブジェクトの場合は、カスタム オブジェクトimplementsSerializableインターフェースであること、およびそのオブジェクト内のカスタム オブジェクトも であることを確認してくださいSerializable

例えば:-

class CustomObject implements Serializable
{
     public String name;
}

ArrayList<CustomObject> objectList = new ArrayList<CustomObject>();

objectListそのため、Serializable になり、これを のアクティビティ間で渡すこともできますIntent

于 2013-03-14T06:32:42.597 に答える
1

AccData の各配列をJSONにシリアル化し、SQLite データベースに格納できます。

于 2013-03-14T07:04:45.717 に答える
0

オブジェクトデータベースの質問に答えると、Androidで動作するオブジェクトデータベースが少なくとも2つあります。db4oPerstです。

于 2013-03-14T06:36:33.190 に答える