【问题标题】:Android save List<String>Android 保存列表<String>
【发布时间】:2012-06-26 23:35:21
【问题描述】:

无论如何我可以将 List 变量保存到 Android 手机的内部或外部存储器吗?我知道我可以保存原始数据,但不确定这一点。

提前致谢。

【问题讨论】:

标签: android list save


【解决方案1】:

是的,你只能保存原语,所以你可以这样:

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

【讨论】:

  • 如果他的列表项包含逗号,请确保 OP 更加注意。我更喜欢 JSON 方法。这很容易。
  • Gson 是最简单的:gson.toJson(OBJECT) 始终是我所做的。
  • 认为您可能想在 list.add(items) 行中添加 [i] 所以它是 list.add(items[i])
【解决方案2】:

如果你想在你的程序中存储/检索/删除一些字符串值,那么ListArray 更好。下面我将向您展示如何使用它。

 // 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

【讨论】:

  • 他希望不仅在应用程序运行时将其保存在设备上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 2021-09-17
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
相关资源
最近更新 更多