【问题标题】:Android, storage custom ArrayListAndroid,存储自定义ArrayList
【发布时间】:2011-12-26 01:45:11
【问题描述】:

我已经阅读了关于 stackoverflow 和 google 的许多主题,关于这个论点,但我无法将自定义 ArrayList 写入文件! 我有一个“CustomType”类型的 ArrayList。 “CustomType”有两个字符串变量:“name”和“description”。

我想保存这个 ArrayList 以便在关闭并重新打开我的应用程序后读取它。 有人帮我这样做吗?有没有人解释我保存/阅读时会发生什么?

【问题讨论】:

    标签: android arraylist storage


    【解决方案1】:

    你可以把它简单地写成一个 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();
    }
    

    (假设 ArrayList 中的对象有方法 getName()getDesc()

    这可能有助于再次阅读,

    Get and Parse CSV file in android

    【讨论】:

    • 好的,非常感谢您的回答!是使用cvs文件的简单方法吗?
    • 另外 csv 文件是一个带有 .csv 扩展名的简单文本文件(csv - 逗号分隔值)
    • 感谢您的代码!我更喜欢这种方式,看起来很容易^^
    【解决方案2】:

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

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

    详细文档here

    通过这些方式中的任何一种,您都可以存储 ArrayList 或您用于填充屏幕的其他数据,因此每次用户打开应用程序时,数据将从存储的位置加载

    【讨论】:

    • 是的!我已经阅读了这个文档,但我不明白在我的具体情况下我该怎么做,我想我必须使用内部存储(我的数据不会大于 400/500Kbyte ..
    【解决方案3】:
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2013-12-25
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多