最近在项目里用到CheckBoxPreference,想着把我的实践过程记录下来,分享给各位。一开始我也挺懵的,网上资料虽然多,但很多都讲得比较抽象,实际操作起来还是得自己摸索。
我的需求很简单,就是在设置界面加个选项,让用户选择是否开启某个功能。用CheckBoxPreference再合适不过。
我在`res/xml`目录下创建一个新的XML文件,就叫它`*`。然后,我在这个文件里定义CheckBoxPreference, 代码大概是这样写的,具体属性记不太清,反正就是一些简单的设置,设置个标题,key值什么的,还设置默认值。
我在主Activity里加载这个`*`文件。这个过程挺顺利的,网上找个例子,稍微改改就成功。记得要初始化PreferenceManager,然后用findPreference方法找到这个CheckBoxPreference,再设置一些监听器什么的。
我遇到的问题是监听器没生效。我检查好几遍代码,发现是key值写错,真是粗心大意!改过来之后就一切正常。
然后,我开始测试这个功能。选中复选框,保存设置,再重新打开应用,发现设置竟然没保存!这可把我急坏,又开始仔细检查代码,发现是SharedPreferences的用法没搞对。网上搜搜,查到正确的使用方法,然后修改代码,测试,再修改,再测试…… 反复折腾好几次,终于搞定。
后来又遇到一个问题,就是我想在CheckBoxPreference的旁边加个说明文字,让用户更清楚这个选项是干嘛的。 这可把我难住,折腾好久,发现要在xml文件中设置summary属性,才能在CheckBoxPreference的下面显示说明文字。真是不容易!
这个CheckBoxPreference的实践过程虽然有点曲折,但也让我学到不少东西。我觉得关键点在于:
- 正确使用SharedPreferences保存和读取数据
- 仔细检查XML文件和代码中的key值
- 合理运用监听器
- 灵活运用summary属性来增加说明文字
希望我的经验能帮助到大家!很多时候,解决问题的过程比结果更重要,在这个过程中,你才能真正学到东西。