我有一个PreferenceScreen
只包含CheckBoxPreferences
(要选择的类别)。我需要一个选项来检查/取消选中所有的选项。我有以下代码可以完成这项工作,但有一个问题:屏幕上的复选框没有更新 - 我需要在视图或某事上调用一些无效。Android CheckBoxPreference - 取消/检查所有偏好
这是我本次代码:
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, Boolean> categories = (Map<String, Boolean>) settings.getAll();
for(String s : categories.keySet()) {
editor.putBoolean(s, false);
}
editor.commit();
this.restart();
}
此代码工作正常,但我需要刷新视图以某种方式imediatelly看到的结果(不只是关闭并重新启动设置活动后)。
谢谢大家的任何建议!
非常感谢你,这是辉煌! – shadyyx 2011-05-03 14:37:45
仅供参考:虽然从HoneyComb弃用此代码将工作到ICS,不能与Jelly Bean一起使用。 – AliR 2013-01-22 05:22:49
哪个部分不能和果冻豆一起使用?我检查了'findPreference'和'setChecked',并且从4.1.1开始它们没有被标记为弃用。 – dmon 2013-01-22 14:48:44