我有一个PreferenceScreen只包含CheckBoxPreferences(要选择的类别).我需要一个选项来检查/取消选中所有这些选项.我有以下代码来完成这项工作,但是有一个问题:屏幕上的复选框没有更新 – 我需要在视图上调用一些无效的东西.
这是我现在的代码:
- private void checkAll() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
- SharedPreferences.Editor editor = settings.edit();
- @SuppressWarnings("unchecked")
- Map<String,Boolean> categories = (Map<String,Boolean>) settings.getAll();
- for(String s : categories.keySet()) {
- editor.putBoolean(s,true);
- }
- editor.commit();
- }
- private void uncheckAll() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
- SharedPreferences.Editor editor = settings.edit();
- @SuppressWarnings("unchecked")
- Map<String,false);
- }
- editor.commit();
- this.restart();
- }
这段代码工作正常但我需要以某种方式刷新视图以查看结果imediatelly(不仅仅是在关闭并重新启动设置活动之后).
谢谢大家的任何建议!