Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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上序列化ArrayList_Android - Fatal编程技术网

如何在android上序列化ArrayList

如何在android上序列化ArrayList,android,Android,我有一个基本功能,需要在我的android应用程序中序列化。用户将向ArrayList添加一些值,我想对它进行序列化,以避免为这个小选项使用数据库,当然还要学习如何序列化(我是一个乞丐),因为它看起来很有用。无论如何,用户在arraylist中保存一些内容,程序关闭,程序再次启动,用户可以看到保存的数据。我如何实现这一点?你能提供一些代码片段或有用的链接吗 非常感谢 我建议使用flexjson将数据序列化为文件。然后你可以用图书馆把它读回来。与序列化相比,这有几个优点,序列化能够将流加载回对象的

我有一个基本功能,需要在我的android应用程序中序列化。用户将向ArrayList添加一些值,我想对它进行序列化,以避免为这个小选项使用数据库,当然还要学习如何序列化(我是一个乞丐),因为它看起来很有用。无论如何,用户在arraylist中保存一些内容,程序关闭,程序再次启动,用户可以看到保存的数据。我如何实现这一点?你能提供一些代码片段或有用的链接吗


非常感谢

我建议使用flexjson将数据序列化为文件。然后你可以用图书馆把它读回来。与序列化相比,这有几个优点,序列化能够将流加载回对象的不同版本中。使用ObjectInputStream时必须非常小心,坦率地说,我从未见过它工作得那么好

下面是一篇如何做到这一点的博文:


您可以通过自定义bean类来实现这一点,并对其实现
可序列化
因此,现在当您为该类创建
ArrayList
时,它是可序列化的。

例如:

Class dataBean implements Serializable
{
     public String name;
}

ArrayList<dataBean> dataBeanArrayList = new ArrayList();
类数据库实现了可序列化
{
公共字符串名称;
}
ArrayList dataBeanArrayList=新的ArrayList();

因此,
dataBeanArrayList
现在可以
序列化
,您也可以在
Intent

之间传递它,它应该大致相同,然后您需要从那里写入SD卡。序列化后,您希望将内容保存在哪里?选项包括:首选项,Db(您拒绝),直接到文件系统。最简单的方法是将其序列化到SD卡上的文件系统。每个android手机都有SD卡吗?如果用户换了更大的SD卡,所有数据都会丢失。我可以将其保存在设备中吗?而不是SD卡中。是的,您可以使用FileInputStream/FileOutputStream将其保存到设备或SD卡。JSON不需要internet连接吗?我不要求可能的用户这样做。没有JSON只是XML等数据的简单文本格式。您可以在没有internet连接的情况下使用它。您需要允许应用程序写入文件系统。