【发布时间】:2021-05-31 11:24:39
【问题描述】:
我有一个带有自定义值的Map<Integer, User>。每个用户都包含各种字符串和数字。我可以保存单个用户,但很难保证整个地图的安全。 (我通过使用 SharedPreferences 以这种方式保存了许多其他对象,但我不知道如何以这种方式保存我的整个 Map。这可能吗?也许 SharedPreferences 不是解决这个问题的方法吗?有没有更简单的方法方法?)
共享偏好类:
地图
public void saveUserMap(Map<Integer, User> userMap){
SharedPreferences sharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("userID", userMap.get(userMap).getUserID());
editor.putString("firstName", userMap.get(userMap).getFirstName());
editor.putString("userName", userMap.get(userMap).getUserName());
editor.putString("birthDate", userMap.get(userMap).getBirthDate());
editor.putString("gender", userMap.get(userMap).getGender());
editor.putString("country", userMap.get(userMap).getCountry());
editor.putString("aboutmeText", userMap.get(userMap).getAboutmeText());
editor.putString("status", userMap.get(userMap).getStatus());
editor.apply();
}
单用户:
public void saveUser(User user){
SharedPreferences sharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("userID", user.getUserID());
editor.putString("firstName", user.getFirstName());
editor.putString("userName", user.getUserName());
editor.putString("birthDate", user.getBirthDate());
editor.putString("gender", userMap.get(userMap).getGender());
editor.putString("country", user.getCountry());
editor.putString("aboutmeText", user.getAboutmeText());
editor.putString("status", user.getStatus());
editor.apply();
}
可以保存单个用户:
SharedPrefManager.getInstance(TestRequest.this)
.saveUser(standardResponse.getUser().get(0));
保存用户地图崩溃:
SharedPrefManager.getInstance(TestRequest.this)
.saveUserMap(standardResponse.getUser());
【问题讨论】:
标签: java android sharedpreferences