2016-10-13 4 views
0

Ich speichere derzeit Benutzernamen und Passwörter in verschiedenen freigegebenen Einstellungen. Ich möchte jeden in der XML-Datei gespeicherten Wert laden, nicht nur den ersten. Wie würde das geschrieben werden?Gemeinsame Einstellungen laden mehrere Werte

+0

'SharedPreferences.getAll()' ist das das? – nandsito

+0

Um die Datei zu kopieren, siehe: http://Stackoverflow.com/a/25585711/1815624 – CrandellWS

Antwort

0

Eine Möglichkeit, es tun könnte, ist die folgende:

//if you are running the code inside from an Activity 
Context context = this; 
SharedPreferences userSharedPrefs = context.getSharedPreferences("USER_NAME_PREFS", MODE_PRIVATE); 
SharedPreferences pwdSharedPrefs = context.getSharedPreferences("PWD_PREFS", MODE_PRIVATE); 

Verfahren getAll() wird eine Datenstruktur zurückkehren HashMap genannt, die wie ein Wörterbuch funktioniert:

Für jeden Wert dort gespeichert ist ein eindeutiger Schlüssel.

Bemerkung am Rande: Durch sie alle bekommen, wenn Sie irgendwie sind, den Zweck dieser Datenstruktur zu brechen, aber lassen Sie uns weiter

Map<String, String> userNameHashMap = (Map<String, String>)userSharedPrefs.getAll(); 
    Map<String, String> pwdHashMap = (Map<String, String>)pwdSharedPrefs.getAll(); 

dann können Sie, was Sie mit ihnen

wollen, dass sie in einer Liste wollen tun ? (Ich gehe davon aus, dass Ihre Benutzernamen sind Zeichenfolgen übrigens)

wollen wissen, ob es ein Passwort für Benutzer John gibt?

boolean johnHasPasswd = pwdHashMap.containsKey("john"); 
    String johnsPass; 

    if(johnHasPasswd) 
     johnsPass = pwdHashMap.get("john"); 
+0

@ Ferr0283 Haben Sie Ihr Problem lösen können? Ich glaube, dass diese Antwort als richtig markiert werden sollte, lassen Sie mich wissen, wenn dies half =) – HenriqueMS

Verwandte Themen