如何仅更改共享首选项中存储的Gson对象中的一个值

时间:2017-11-28 08:28:39

标签: java android json android-sharedpreferences gson

这是JSON

image

我使用此功能<{1}}在JSON中保存此shared preference

public static void persistUser(Context context, User user) {
    mUser = user;
    SharedPreferences.Editor pref = 
    context.getSharedPreferences(USER_SHAREDS, 
    Context.MODE_PRIVATE).edit();
    pref.putString(USER_DATA, new Gson().toJson(user, User.class));
    pref.apply();
 }

现在我要更改user_data中的值 - &gt;用户覆盖图像而不更改所有其他数据 只需更改任何一个值而无需更改其他内容

帮助我以简单的方式解决这个问题?

1 个答案:

答案 0 :(得分:2)

简单地说,您可以让用户退出并在通过呼叫功能进行更改后将其保存回来。

//Get user
User user = getPersistUser(context);

//Change
user.setCoverImage(true)

//Save
persistUser(context, user)

获取用户功能

public static CoreUser getCoreUserInfo(Context context) {
     Gson gson = new Gson();
     String json = CacheHelper.read(context, CoreUser.OBJECT_NAME, "");
     return gson.fromJson(json, CoreUser.class);
}