3 回答
TA贡献1900条经验 获得超5个赞
您可以sharedPreferences为此目的使用。
public <T> void putList(String key, List<T> list) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, gson.toJson(list));
editor.apply();
}
public <T> List<T> getList(String key, Class<T> clazz) {
Type typeOfT = TypeToken.getParameterized(List.class, clazz).getType();
return gson.fromJson(getString(key, null), typeOfT);
}
以上这些函数需要像这样放在一个 PrefManager 类中:
public class PrefManager {
private SharedPreferences sharedPreferences;
private Gson gson;
public PrefManager(Context context, Gson gson) {
this.sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
this.gson = gson;
}
...
public <T> void putList(String key, List<T> list) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, gson.toJson(list));
editor.apply();
}
public <T> List<T> getList(String key, Class<T> clazz) {
Type typeOfT = TypeToken.getParameterized(List.class, clazz).getType();
return gson.fromJson(getString(key, null), typeOfT);
}
}
然后在要设置列表时调用:
prefManager.putList(prefManager.Key.USER_LIST, userList);
然后当你想检索它时:
List<User> userList = prerManager.getList(PrefManager.Key.USER_LIST, User.class);
从这里参考
添加回答
举报