无法从getdefaultsharedpreferences得到正确的结果

时间:2017-09-10 13:41:58

标签: java android

当我使用defaultsharedpreferences保存多个数据时,我发现数据已被覆盖。我对发生的事感到困惑。来自偏好的预期值

userId is 2 
authorizedHeader is bhlrYXZpbjpseWthdmlu

并检索值

userId is 2 
authorizedHeader is 2

image show the result

private static final String PREF_AUTHORIZED_QUERY = null;

private static final String PREF_USERID_QUERY = null;

public static String getStoredUserIdQuery(Context context){
    return PreferenceManager.getDefaultSharedPreferences(context)
            .getString(PREF_USERID_QUERY, null);
}

public static String getStoredAuthorizedQuery(Context context){
    return PreferenceManager.getDefaultSharedPreferences(context)
            .getString(PREF_AUTHORIZED_QUERY, null);
}

public static void setStoredQuery(Context context, String userId, String authorizedHeader){
    PreferenceManager.getDefaultSharedPreferences(context)
            .edit()
            .putString(PREF_AUTHORIZED_QUERY, authorizedHeader)
            .putString(PREF_USERID_QUERY, userId)
            .apply();
}

1 个答案:

答案 0 :(得分:1)

对于两个键,您使用的值为null意味着只有一个键,null将覆盖彼此(PREF_USERID_QUERY将覆盖以{保存的先前值{1}}为关键)

所以给他们值

null

你可以想象它像

private static final String PREF_AUTHORIZED_QUERY = "authorized";

private static final String PREF_USERID_QUERY = "userid";