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 中存储数据的选项——它们似乎都不适合我

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现在是可序列化的,你也可以在Intent.

于 2013-03-14T06:32:42.597 回答
1

您可以将 AccData 中的每个数组序列化为JSON并将其存储在SQLite 数据库中。

于 2013-03-14T07:04:45.717 回答
0

回答您的对象数据库问题,至少有 2 个对象数据库可在 Android 上运行 - db4oPerst

于 2013-03-14T06:36:33.190 回答