嘗試加入ed.commit()
。
即:
SharedPreferences sp = getSharedPreferences("isPhysicalTheftEnabled", MODE_WORLD_READABLE);
SharedPreferences.Editor ed = sp.edit();
ed.putBoolean("isPhysicalTheftEnabled", false);
ed.commit();
SharedPreferences.Editor
小號要求您提交任何你在你的SharedPreferences更改更改應用。
關於對ANKIT的回答您的評論:
要設置CheckBox
根據您保存到SharedPreferences
布爾值的checked屬性,你需要的東西,如:
SharedPreferences sp = getSharedPreferences("isPhysicalTheftEnabled", MODE_WORLD_READABLE);
myCheckBox.setChecked(sp.getBoolean("isPhysicsTheftEnabled", [true/false]);
。 。其中您選擇true
或false
爲def_value
的.getBoolean()
(如果SharedPreferences
找不到布爾值)。
我做了.commit();已經但該複選框仍然沒有得到檢查,任何想法爲什麼? – dythe 2012-07-26 14:16:35
發佈我們的代碼塊。你是否正確地從'SharedPreferences'獲取了布爾值,並將CheckBox的'.setChecked()'設置爲該布爾值的值? – Mxyk 2012-07-26 14:17:31
當你不使用'PreferenceActivity'時,你必須通過'checkBoxObject.setChecked(sharedPreferences.getBoolean(「isPhysicalTheftEnabled」,false))手動設置'CheckBox'狀態'' – nkr 2012-07-26 14:18:56