介绍
SharedPreferences功能:在android中保存较少的键值对。
Android存储位置:以.xml格式存储在data/data/包名/shared_prefs目录下。
存储方法:
SharedPreferences sharedPreferences = getSharedPreferences("Activity2Preferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.commit();
读取方法:
SharedPreferences sp = getPreferences(MODE_PRIVATE);
String string = sp.getString("Activity2Preferences", "default");
Activity2Preferences为key。用于区分读取哪一个SharedPreferences中的数据。
存储List文件到SharedPreferences的方法。
- 先将List转换为 JSON 字符串
- 保存 JSON 字符串到 SharedPreferences
- 从 SharedPreferences 中获取保存的 JSON 字符串
- 将 JSON 字符串转换为 List
保存List到SharedPreferences
//保存List到SharedPreferences
private void saveListToSharedPreferences(List<String> list, String key) {
// 将 List 转换为 JSON 字符串
Gson gson = new Gson();
String json = gson.toJson(list);
// 保存 JSON 字符串到 SharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences(ListActivity.this.getPackageName(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, json);
editor.apply();
}
从SharedPreferences获取List
//从SharedPreferences获取List
private List<String> getListFromSharedPreferences(String key) {
// 从 SharedPreferences 中获取保存的 JSON 字符串
SharedPreferences sharedPreferences = getSharedPreferences(ListActivity.this.getPackageName(), Context.MODE_PRIVATE);
String json = sharedPreferences.getString(key, null);
// 将 JSON 字符串转换为 List
List<String> list = new ArrayList<>();
if (json != null) {
Gson gson = new Gson();
Type type = new TypeToken<List<String>>(){}.getType();
list = gson.fromJson(json, type);
System.out.println(list);
}
return list;
}