当我使用defaultsharedpreferences保存多个数据时,我发现数据已被覆盖。我对发生的事感到困惑。来自偏好的预期值
userId is 2
authorizedHeader is bhlrYXZpbjpseWthdmlu
并检索值
userId is 2
authorizedHeader is 2
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();
}
答案 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";