如何创建特定于用户的SharedPreference?

时间:2017-04-12 13:39:35

标签: android sharedpreferences

我正在尝试创建一个特定于用户的sharedPreference。我想要存储的是布局背景,具体取决于设置菜单中的内容。如何根据正在使用的帐户存储和加载sharedPrefence?

2 个答案:

答案 0 :(得分:0)

您可以添加包含用户信息的值字段吗?然后,您将搜索用户名并检查其子项以获取相应信息。您可能必须将信息存储为对象。

如果您使用的是共享首选项,则只应包含少量键值对。由于您使用的是本地数据库,我建议您将值存储在那里。您可以为要存储的每种类型的信息创建一个表,比如High Scores。您需要一个“USERID”字段,以便在对数据库执行搜索时,可以使用where子句指定要搜索的USERID。一旦搜索了用户的信息,您就可以将其存储到共享首选项中,以便更轻松地使用,并且只有少量数据而不是每个人的数据。完成信息使用后,您可以将信息保存回数据库。

答案 1 :(得分:0)

您可以将您的用户ID用作SharedPreference的键,然后将您的用户详细信息保存为其值中的对象。 通过这种方式,您可以在本地存储所有用户的用户数据。

/*Save the object in shared Preferences*/
    public void saveObjectToPreferences(String key, Object value) {
        final SharedPreferences prefs = getSharedPreferences(ApplicationConstants.PREF_FILE_CONFIG, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        String jsonValue = new Gson().toJson(value);
        editor.putString(key, jsonValue);
        editor.apply();
    }

    /*Get the object from shared Preferences*/
    public Object getObjectFromPreferences(String key, Object defaultObj) {
        final SharedPreferences prefs = getSharedPreferences(ApplicationConstants.PREF_FILE_CONFIG, Context.MODE_PRIVATE);
        String value = prefs.getString(key, "");
        Object object = new Gson().fromJson(value, defaultObj.getClass());
        return object;
    }

在密钥中传递用户ID,在这些方法中传递对象中的详细信息。它会起作用。

相关问题