2011-11-10 78 views
1

我读过很多关于stackoverflow和google的话题,关于这个参数,但是我不能定位自己将自定义ArrayList写入文件! 我有一个类型为“CustomType”的ArrayList。 “CustomType”有两个字符串变量:“名称”和“描述”。Android,存储自定义ArrayList

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

回答

2

你可以写简单地作为一个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

+0

好的非常感谢你的答案!是使用cvs文件的简单方法吗? – TimeParadox

+0

编辑我的答案,希望它有帮助:) – Optimus

+0

此外csv​​文件是一个简单的文本文件,扩展名为.csv(csv - 逗号分隔值) – Optimus

1

要保存任何类型的数据,你有选择任何可用的数据存储tequinue

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

详细的文档here

throgh的这些方法,你可以存储的ArrayList或其他数据,您使用的填充屏幕中的任何一个,所以每次用户打开应用程序数据从存储位置加载

+0

是的!我已阅读此文档,但我不明白我在特定情况下要做什么,我认为我必须使用内部存储(我的数据不会超过400/500Kbyte .. – TimeParadox

0
+0

也谢谢!^ ^ – TimeParadox