Android,存储自定义ArrayList



我在stackoverflow和google上读过很多关于这个参数的主题,但我无法将自定义ArrayList写入文件!我有一个类型为"CustomType"的数组列表。"CustomType"有两个字符串变量:"name"one_answers"description"。

我想保存这个数组列表,以便在关闭和重新打开应用程序后读取它。有人帮我做这个吗?有没有人告诉我当我保存/阅读时会发生什么?

你可以把它写成CSV文件,像这样,

1,name,desc
2,name2,desc2
3,name3,desc3
...

或者您可以使用gson库- http://code.google.com/p/google-gson/,将其转换为json字符串,然后将其写入文件,这样当您读取它时,您可以直接从json获取对象,

我个人会使用第二种方法

编辑:用于写入csv

try
{
  FileWriter writer = new FileWriter("<path>/MyFile.csv");
  while(lst.next())
  {
     for(int i = 0; i < columnSize; i++)
     {
        writer.append(i);
        writer.append(',');
        writer.append(lst.get(i).getName());
        writer.append(',');
        writer.append(lst.get(i).getDesc());
     }
     writer.append('n');
  }
}
catch(Exception e)
{
  e.printStackTrace();
}

(假设数组列表中的对象有getName()getDesc()方法)

再读一遍可能会有帮助,

获取并解析android中的CSV文件

要保存任何类型的数据,您必须选择任何可用的数据存储队列

1)shared preferences
2)internal storage
3)external storage 
4)Sqlite
5)internet server

详细文档在这里

通过任何一种方式,你可以存储数组列表或其他数据,你用来填充屏幕,所以每次用户打开应用程序的数据将加载从存储位置

也可以使用XML文件:

  • http://androidideasblog.blogspot.com/2010/01/read-write-and-parse-xml-file-in.html
  • http://www.ibm.com/developerworks/opensource/library/x-android/
  • 如何创建,读取&android应用程序
  • http://www.anddev.org/viewtopic.php?p=30363

这样你就可以使用所有类型的文本和符号,如果你使用的是CSV,你就不能在你的内容中使用分隔符