【发布时间】:2012-06-26 23:35:21
【问题描述】:
无论如何我可以将 List 变量保存到 Android 手机的内部或外部存储器吗?我知道我可以保存原始数据,但不确定这一点。
提前致谢。
【问题讨论】:
-
你想用什么方法来保存它?
-
使用 SQLite :) 一个轻量级数据库
无论如何我可以将 List 变量保存到 Android 手机的内部或外部存储器吗?我知道我可以保存原始数据,但不确定这一点。
提前致谢。
【问题讨论】:
是的,你只能保存原语,所以你可以这样:
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
StringBuilder csvList = new StringBuilder();
for(String s : list){
csvList.append(s);
csvList.append(",");
}
sharedPreferencesEditor.put("myList", csvList.toString());
然后要再次创建您的list,您将:
String csvList = sharedPreferences.getString("myList");
String[] items = csvList.split(",");
List<String> list = new ArrayList<String>();
for(int i=0; i < items.length; i++){
list.add(items);
}
您可以将这种“序列化”封装到您自己的类中,包装一个列表以保持它的整洁。您也可以考虑将您的list 转换为JSON。
【讨论】:
如果你想在你的程序中存储/检索/删除一些字符串值,那么List 比Array 更好。下面我将向您展示如何使用它。
// Declaring List Variable
List<String> Mylist = new ArrayList<String>();
// Adding item to List
Mylist.add(list.size(), "MyStringValue"); //this will add string at the next index
// Removing element form list
Mylist.remove(list.size()-1); //this will remove the top most element from List
【讨论】: