I have a Settings activity in my android application which purpose is to save preferences upon an item selection. My problem is, my settings don’t get saved. The following method is called every time a user selection is made:
public void savePreferences()
{
defaultVolumeUnit = MySingleton.getInstance().getDefaultVolumeUnit();
defaultPressureUnit = MySingleton.getInstance().getDefaultPressureUnit();
defaultTempUnit = MySingleton.getInstance().getDefaultTempUnit();
settings = getSharedPreferences(SettingsTAG, 0);
Editor editor = settings.edit();
editor.putInt("selectVolume", defaultVolumeUnit);
editor.putInt("selectPressure", defaultPressureUnit);
editor.putInt("selectTemperature", defaultTempUnit);
editor.commit();
}
I also use the following code in my MAIN activity where all the settings get restored upon start up:
public void restoreValues()
{
settings = getSharedPreferences(SettingsTAG, 0);
int SelectedVolume = settings.getInt("selectVolume", 0);
int SelectedPressure = settings.getInt("selectPressure", 0);
int SelectedTemperature = settings.getInt("selectTemperature", 0);
// Necessary assignments here...
}
I use global variables throughout my whole application and those get saved but the settings do not. I’m positive that both savePreferences() and restoreValues() method gets called but whatever the user had selected doesn’t get saved.
In other words, nothing gets saved/restored. I don’t know what I’m doing wrong but this issue has been driving me nuts. This used to work for me before but I’m doing a Settings UI revamp and the same code suddenly isn’t working…
Any help please?
Think you should be doing this in your activity:
In your method that I’ve noticed, your parameters do not look right actually…why are you using
SettingsTAG, with0as parameters to thegetSharedPreferencemethod? Is your activity extendingPreferenceActivity? You should be using the context.Edit:
If you want to debug it, it might be better to do it this way:
The reason: you’re “listening” on the changes whenever its made to confirm that you are indeed saving the preferences. When you’re done with debugging, be sure to take out the
Logcalls so that it does not appear in the logcat.