Ich denke, die Frage hat mehr damit zu tun, warum
PreferenceManager.getDefaultSharedPreferences(this).getAll()
gibt eine leere / widersprüchliche Karte zurück, als wenn über eine Standard-Java-Karte iteriert wird. Das Android-Dokument ist nicht wirklich klar, was hier vor sich geht, aber im Grunde scheint es der erste Anruf überhaupt zu sein
PreferenceManager.setDefaultValues(this, R.xml.preferences,false)
- Dies ist das, was Sie aufrufen sollten, um die Einstellungen beim Starten Ihrer App zu initialisieren. - Erstellt eine zwischengespeicherte Version Ihrer Einstellungen, die dazu führt, dass zukünftige Änderungen an Ihrer XML-Einstellungsdatei inkonsistent behandelt werden, dh dass Sie nicht übereinstimmen in Ihrer Frage beschrieben.
Führen Sie die folgenden Schritte aus, um diese "zwischengespeicherte Entität" zurückzusetzen (die Sie über den obigen Link finden können):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().clear();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);