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
그냥 정보 : HoneyComb에서 사용되지 않지만이 코드는 ICS까지 작동하지만 Jelly Bean에서는 작동하지 않습니다. – AliR
Jelly Bean과 호환되지 않는 부분은 무엇입니까? 나는'findPreference'와'setChecked'를 검사했고 4.1.1에서 deprecation으로 표시되지 않았습니다. – dmon