I\'m trying to set the \"isPhysicalTheftEnabled\" to false when a method is executed, but this doesn\'t seem to work. Anyone have any idea?
SharedPre
You need to call ed.apply()
after changing values in SharedPreferences
.
You can also use ed.commit()
if you want to check for errors. commit()
(unlike apply()
) returns false if the data was not (correctly) written to the persistent storage.
You need to call editorObject.commit();
after you done with putting data into SP.
For your problem replace your code with below code...
SharedPreferences sp = getSharedPreferences("isPhysicalTheftEnabled", MODE_WORLD_READABLE);
SharedPreferences.Editor ed = sp.edit();
ed.putBoolean("isPhysicalTheftEnabled", false);
ed.commit();
Try adding ed.commit()
.
i.e.:
SharedPreferences sp = getSharedPreferences("isPhysicalTheftEnabled", MODE_WORLD_READABLE);
SharedPreferences.Editor ed = sp.edit();
ed.putBoolean("isPhysicalTheftEnabled", false);
ed.commit();
SharedPreferences.Editor
s require that you commit anything you change in your SharedPreferences for the changes to apply.
Regarding your comment on Ankit's answer:
To set the checked property of your CheckBox
based on the value of the boolean you saved to SharedPreferences
, you need something like:
SharedPreferences sp = getSharedPreferences("isPhysicalTheftEnabled", MODE_WORLD_READABLE);
myCheckBox.setChecked(sp.getBoolean("isPhysicsTheftEnabled", [true/false]);
.. in which you pick either true
or false
for the def_value
of .getBoolean()
(if the SharedPreferences
can't find the boolean).