Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 什么';存储数组或自定义对象(持久数据)的方法是什么?_Android_Persistent Storage - Fatal编程技术网

Android 什么';存储数组或自定义对象(持久数据)的方法是什么?

Android 什么';存储数组或自定义对象(持久数据)的方法是什么?,android,persistent-storage,Android,Persistent Storage,有没有办法在Android中不使用SQLite而将自定义数据对象存储为持久数据 我在屏幕上有一个3*3的EditText字段矩阵,我想将这9个字段的所有内容存储到一个“profile”(对象)中。可以创建其他配置文件,使其具有具有不同数据的不同矩阵 我想到了XML,但我想听听其他意见。您可以序列化数组并将其存储到共享首选项中,类似于此问题的答案: 要存储多个配置文件,您可以使用“Profile-1”、“Profile-2”等键将每个配置文件存储在共享首选项中。然后,您可以使用另一个共享首选项,

有没有办法在Android中不使用SQLite而将自定义数据对象存储为持久数据

我在屏幕上有一个3*3的EditText字段矩阵,我想将这9个字段的所有内容存储到一个“profile”(对象)中。可以创建其他配置文件,使其具有具有不同数据的不同矩阵


我想到了XML,但我想听听其他意见。

您可以序列化数组并将其存储到共享首选项中,类似于此问题的答案:


要存储多个配置文件,您可以使用“Profile-1”、“Profile-2”等键将每个配置文件存储在共享首选项中。然后,您可以使用另一个共享首选项,该首选项具有您拥有的配置文件数。

您的选项在文档主题中进行了说明。

您可以尝试以下操作:

public bool save(SaveableObject s, Context context, String fileName)
{
    try
    {
        FileOutputStream fos;
        ObjectOutputStream os;
        File file1 = context.getExternalFilesDir(null);
        File file2 = new File(file1, fileName);
        fileName = file2.getAbsolutePath();
        fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
        os = new ObjectOutputStream(fos);
        os.writeObject((Object)analysis);
        os.close();
        fos.close();
    } 
    catch (IOException e)
    {
        e.printStackTrace();
    }
}

它应该将文件保存到
/sdcard/fileName

谢谢您的回答。。我没有看到那个问题/答案。我喜欢它的样子,但是动态配置文件的数量呢?编辑:例如:创建5个配置文件(每个配置文件都有3*3矩阵对象),我知道如果我序列化对象(如果它只是一个配置文件),它可以工作。那多重的呢?再次感谢。我添加了更多信息。如果您有动态的配置文件数,您可能需要考虑使用SQLite。当然,你会想要存储更多的数据,sqlite将是最好的选择。。。我将您的标记为答案,我想我将尝试在sqlite db中每个配置文件的一个字段中序列化/反序列化所有配置文件信息,我认为这样会更好。@Deco我使用sqlite存储这9个对象(将它们的属性序列化为字符串),但这并不合适。我决定从现在起改用SimpleXML,这是一个非常好用的简单xml api。它完成了全部工作。将一个对象转换为xml结构的对象,查看网站-它有一个很好的tutorials@Deco我使用xml序列化的原因是,我可能在一个类中处理不同数量的类。由于我希望有机会通过web进行备份,xml似乎是正确的选择。至于你的情况,是的,你可以。如果您只对支持实例状态感兴趣,请查看有关如何在Android中管理SQLite数据库(稍微复杂一点,但可能有更大的模式)和共享首选项(更容易)的文档。祝你好运,如果你有任何疑问/问题,请告诉我。谢谢。我查过了,但我觉得我在这些选择之间。SharedPref看起来有点简单,但是sqlite db对于我所需要的东西来说有点复杂。如果没有其他方法,我将使用SQLite。。谢谢