Aktualisieren Sie die Einstellungen in PreferenceActivity on Resume

8

In meiner App können einige Einstellungen möglicherweise geändert werden, während PreferenceActivity nicht geöffnet ist, und ein Problem, auf das ich gestoßen bin, ist, dass addPreferencesFromResource in onCreate aufgerufen wird, also sag, ich öffne die PreferenceActivity , dann gehe zu einem anderen Bildschirm von dort, dann tue etwas, das die Einstellungen ändert, dann drücke die Zurück-Taste, um zum PreferenceActivity zurückzukehren, dann haben sich bestimmte Einstellungen im Layout nicht geändert.

Also, wie könnte ich alle Preferences jedes Mal neu laden, wenn onResume (oder onStart() ) aufgerufen wird, ohne das Layout zu duplizieren?

    
Jakar 19.09.2011, 03:32
quelle

2 Antworten

3

edit: Diese Lösung funktioniert nur für API 11 +.

Ich bin mir nicht sicher, ob ich Ihr Problem vollständig verstanden habe, aber Sie könnten einen Aufruf von recreate () in die onResume der Aktivität einfügen, was meiner Erfahrung nach dazu führt, dass die Aktivität den gesamten Lebenszyklus wieder durchläuft.

Um sicherzustellen, dass Sie dies nur tun, wenn es tatsächlich schmutzige Daten gibt, würde ich in den SharedPreferences ein Flag setzen, das Ihrer Aktivität in onResume () mitteilt, dass es neu erstellt werden muss.

%Vor%     
JoeLallouz 19.09.2011, 04:10
quelle
1

Ich hatte ein ähnliches Problem. Wenn ich keine einfache Möglichkeit finde, meine PreferenceActivity selbst zu aktualisieren, bestand meine Lösung darin, dies meiner PreferenceActivity hinzuzufügen:

%Vor%

Dies führt dazu, dass der Prefs-Bildschirm beim nächsten Start erneut von SharedPreferences geladen wird. Unnötig zu sagen, dass dieser Ansatz nicht funktioniert, wenn Sie mit der Zurück-Schaltfläche zu Ihrem Einstellungsbildschirm zurückkehren möchten.

    
Anders 05.10.2011 11:31
quelle