私はPreferenceScreen
含むだけCheckBoxPreferences
(選択するカテゴリ)を持っています。それらすべてをチェック/チェック解除するオプションが必要です。私は仕事をする次のコードを持っていますが、1 つの問題があります: 画面上のチェックボックスが更新されない - ビューなどで無効化を呼び出す必要があります。
これが私の現在のコードです:
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();
}
このコードは正常に動作しますが、結果をすぐに表示するには、何らかの方法でビューを更新する必要があります (設定アクティビティを閉じて再起動した後ではありません)。
アドバイスをありがとうございました!