[英]How to save Map to Shared Preferences?
I have an Map<Integer, User>
with custom values.我有一个带有自定义值的
Map<Integer, User>
。 Each User contains variety of strings and numbers.每个用户都包含各种字符串和数字。 I can save a singel User but safe the entire Map is difficult.
我可以保存一个用户,但很难保护整个 Map。 (I save a lot of other objects this way by using the SharedPreferences but I can't figure out how to save my entire Map this way. Is this possible? Maybe SharedPreferences isn't the way to go about this? Is there a simpler method?)
(我通过使用 SharedPreferences 以这种方式保存了很多其他对象,但我不知道如何以这种方式保存我的整个 Map。这可能吗?也许 SharedPreferences 不是 go 的方法吗?有没有更简单的方法方法?)
Shared Preference Class:共享偏好 Class:
Map Map
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();
}
Single User:单用户:
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();
}
Save a Single User is possible:可以保存单个用户:
SharedPrefManager.getInstance(TestRequest.this)
.saveUser(standardResponse.getUser().get(0));
Save User Map crash:保存用户 Map 崩溃:
SharedPrefManager.getInstance(TestRequest.this)
.saveUserMap(standardResponse.getUser());
You can serialise user object to json(using GSON or Moshi) and save the JSON into shared Pref.您可以将用户 object 序列化为 json(使用 GSON 或 Moshi)并将 JSON 保存到共享首选项中。
public void saveUserMap(User user){
SharedPreferences sharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("mUser", new Gson().toJson(user));
editor.apply();
}
Other options for save objects are a number of ORMs for Android (ORMLite, greenDAO, Sugar ORM, ActiveAndroid, etc.)保存对象的其他选项是一些用于 Android 的 ORM(ORMLite、greenDAO、Sugar ORM、ActiveAndroid 等)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.