Android CheckBoxPreference – 取消检查所有首选项

Android CheckBoxPreference – 取消检查所有首选项,第1张

概述我有一个PreferenceScreen只包含CheckBoxPreferences(要选择的类别).我需要一个选项来检查/取消选中所有这些选项.我有以下代码来完成这项工作,但是有一个问题:屏幕上的复选框没有更新 – 我需要在视图上调用一些无效的东西. 这是我现在的代码: private void checkAll() { SharedPreferences settings = 我有一个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(不仅仅是在关闭并重新启动设置活动之后).

谢谢大家的任何建议!

解决方法 那是因为你实际上并没有抓住偏好对象,只是实际值.在for循环中尝试这个:
boolean theValue = param; for(String s : categorIEs.keySet()) {    Preference pref = findPreference(s);    if (pref instanceof CheckBoxPreference) {      CheckBoxPreference check = (CheckBoxPreference)pref;      check.setChecked(theValue);    }  }

我认为你可以省略调用编辑器并提交,因为setChecked()会为你做这件事.

也检查this.

总结

以上是内存溢出为你收集整理的Android CheckBoxPreference – 取消/检查所有首选项全部内容,希望文章能够帮你解决Android CheckBoxPreference – 取消/检查所有首选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1134468.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存