Ich habe eine Android-App mit einem Bildschirm Einstellungen. Die einzige Voreinstellung in diesem Bildschirm ist eine MultiSelectListPreference mit vier Optionen. Ich versuche, die Methode onPreferenceChange
zu implementieren, um die Zusammenfassung der Präferenz jedes Mal zu aktualisieren, wenn sich eine Option ändert.Seltsame Werte in onPreferenceChange-Methode
Um dies zu tun, bin ich das Objekt newValue
zu einem HashSet von Zeichenfolgen, aber wenn ich den Inhalt des HashSet ausloggen, entsprechen sie nicht mit den Werten, die der Benutzer ausgewählt.
Dies ist mein Code:
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof MultiSelectListPreference) {
MultiSelectListPreference pref = (MultiSelectListPreference) preference;
HashSet<String> values = (HashSet<String>) newValue;
Log.e("SettingsActivity", values.toString());
}
return true;
}
die Log-Nachricht ausgedruckt Und hier ist, wenn ich alle vier Optionen wählen:
07-28 13:13:00.896 31196-31196/com.example.android.theguardiannews E/SettingsActivity:
[ film , environment, business , environment , politics, business]
Edit: ist hier ein Bild alle mögliche Optionen:
Weiß jemand, warum das passiert?
können Sie ein Bild mit anzeigen Präferenz Bildschirm, grundsätzlich ich whant einen Druck aller Listenmöglichkeiten. –
@BrunoFerreira Ich habe meine Frage mit dem gesuchten Bild bearbeitet. –