在我的应用程序中,一个界面有一些checkBox,我希望在退出界面后,CheckBoxes应该保持状态。所以下次我输入它时可以显示我上次做了什么。我使用了{{1} } 为达到这个。
SharedPreferrences
但它不起作用。当我返回此页面时,所有复选框都显示“每个项目都未被选中”的状态。
如何实现我希望的功能?
答案 0 :(得分:3)
在输入日期getSharedPreferences之后,您必须使用onCreate中的此数据初始化您的复选框状态,如下所示
// onCreate
SharedPreferences settings = getSharedPreferences("syllabus", 0);
Boolean isChecked = settings.getBoolean("cbx1_ischecked", false);
checkbox1.setChecked(isChecked );
答案 1 :(得分:0)
您的值会保存到SharedPreferences
,但这并不意味着它们会自动恢复到相应的复选框。您需要从SharedPreferences
阅读它们,并在活动开始时设置您的复选框,如@talhakosen所述。
此外,您不需要在每次更改时将值写入SharedPreferences。当用户离开您的活动时,即在onStop()
方法中,将它们存储就足够了。