2017-09-10 1 views
1

Wenn ich defaulestandsharedpreferences zum Speichern mehrerer Daten verwenden, fand ich Daten abgedeckt. Ich bin verwirrt darüber, was passiert ist. Die erwarteten Werte von den Vorliebenkann nicht richtig Ergebnis von Getdefaultsharedpreferences erhalten

userId is 2 
authorizedHeader is bhlrYXZpbjpseWthdmlu 

und abgerufenen Werte

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(); 
} 

Antwort

1

Sie Werte als null für beide Tasten bedeuten, dass es verwenden, ist nur ein Schlüssel dh null die außer Kraft gesetzt wird Die anderen (PREF_USERID_QUERY) überschreiben vorherige Werte, die mitgespeichert wurdenals Schlüssel)

so geben sie Werte

private static final String PREF_AUTHORIZED_QUERY = "authorized"; 

private static final String PREF_USERID_QUERY = "userid"; 

Sie es wie

+0

Dank vorstellen kann !!! Es klappt. Also verwendet der Schlüssel den Wert von string? – borderwing

+0

genau, du hast es, willkommen –

Verwandte Themen