SharedPreferences 存 list
时间: 2023-09-19 09:12:11 浏览: 100
SharedPreferences 不支持直接存储 List 类型的数据,但是可以使用 Gson 将 List 转换成 Json 字符串,再存储到 SharedPreferences 中。
以下是一个示例:
```java
// 创建一个 List
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
// 使用 Gson 将 List 转换成 Json 字符串
Gson gson = new Gson();
String json = gson.toJson(list);
// 存储到 SharedPreferences 中
SharedPreferences sharedPreferences = getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("my_list_key", json);
editor.apply();
```
读取时可以将存储的 Json 字符串转换成 List:
```java
// 从 SharedPreferences 中读取 Json 字符串
SharedPreferences sharedPreferences = getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
String json = sharedPreferences.getString("my_list_key", "");
// 使用 Gson 将 Json 字符串转换成 List
Gson gson = new Gson();
Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = gson.fromJson(json, type);
```
需要注意的是,如果 List 中包含自定义对象,需要在转换时指定对应的 Type 类型。
阅读全文