Based on the following code, can you tell me how to refresh the PreferenceActivity window to show changes in the settings immediately? For example: the user taps the master chime toggle checkbox to true (ticked), I would like the user to immediately see the other settings such as the ChimeOn15Past checkbox also be be true (ticked)
SharedPreferences.Editor prefEditor = clockSettings.edit(); // Allow the settings to be changed. if (booleanMasterChimeToggle == true) { prefEditor.putBoolean("ChimeOnTheHour", true); prefEditor.putBoolean("ChimeOn15Past", true); prefEditor.putBoolean("ChimeOn30Past", true); prefEditor.putBoolean("ChimeOn45Past", true); strNotifyMessage = "Full chiming has now been set."; } else { prefEditor.putBoolean("ChimeOnTheHour", false); prefEditor.putBoolean("ChimeOn15Past", false); prefEditor.putBoolean("ChimeOn30Past", false); prefEditor.putBoolean("ChimeOn45Past", false); strNotifyMessage = "Full chiming has now been disabled."; }
Instead of
finish(); startActivity(getIntent());
I prefer the following code :
setPreferenceScreen(null); addPreferencesFromResource(R.xml.preferences);
This will reset the display as well but without the whole finish procedure and its consequences. Plus this code works well with PreferenceActivity
and PreferenceFragment
.
This is interesting if you would like to change dynamically the locale value for example. In this case, working with the manager is not enough because you want a full reload of titles and values.
EDIT: setPreferenceScreen
is deprecated in PreferenceActivity
(still working) but is not in PreferenceFragment
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With