我有一组名为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数据。
答案 0 :(得分:1)
您可以很好地使用Serialization
。如果是自定义对象,请确保自定义对象implements
Serializable
接口以及该对象中的任何自定义对象也应为Serializable
。
<强> E.g: - 强>
class CustomObject implements Serializable
{
public String name;
}
ArrayList<CustomObject> objectList = new ArrayList<CustomObject>();
因此objectList
现在是可序列化的,您也可以在Intent
中的活动之间传递此内容。
答案 1 :(得分:1)
您可以将AccData中的每个数组序列化为JSON并将其存储在SQLite database中。
答案 2 :(得分:0)