Android中PreferenceFragment的使用详解
目录
- PreferenceFragment简介
- PreferenceFragment使用
- PreferenceFragment 扩展
PreferenceFragment简介
在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,Android专门为这种Activity提供了便捷的基类PreferenceActivity(如果是Fragment,使用PreferenceFragment,现在推荐使用v7包下的PreferenceFragmentCompat),这些类内部封装了Preference,会帮我们自动读写设置,方便开发者便捷完成这类功能。
PreferenceFragment使用
PreferenceFragment
位于android.preference
包下,现在推荐使用v7包下的,这里还是使用这个来说明,原理是一样的。文章图片
先来使用下:
在res目录下创建xml目录
文章图片
在xml目录下创建xml文件(文件名自己定义即可)
这里演示的文件是
pref_setting.xml
继承PreferenceFragment,在onCreate方法中调用addPreferencesFromResource
方法加载xml目录下的资源即可
public class PreferenceTestFragment extends PreferenceFragment {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_setting); //加载xml文件}}
运行效果:
文章图片
pref_setting.xml
中使用的控件可以查看android.preference
包下,这里面有几个常用的属性:
属性名 用途 android:key 存储key,这个就是SharedPreferences存储时的key android:title 标题 android:defaultValue 默认值
设置点击事件
findPreference("setting_no_img").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {@Overridepublic boolean onPreferenceClick(Preference preference) {//todoreturn true; }});
findPreference
中的key就是xml中声明的key。
可以使用registerOnSharedPreferenceChangeListener
来监听SharedPreferences值改变。
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
PreferenceFragment 扩展 可以通过继承Preference
来实现自定义控件
public class ThemePreference extends Preference {private CircleView circleImageView; public ThemePreference(Context context, AttributeSet attrs) {super(context, attrs); // 加载布局文件setWidgetLayoutResource(R.layout.item_theme_preference_preview); } // 绑定视图@Overrideprotected void onBindView(View view) {super.onBindView(view); int color = CommonSettingUtil.getInstance().getThemeColor(); circleImageView = (CircleView) view.findViewById(R.id.iv_preview); circleImageView.setBackgroundColor(color); }/*** 刷新颜色显示*/public void updateColor() {circleImageView.setBackgroundColor(CommonSettingUtil.getInstance().getThemeColor()); }}
【Android中PreferenceFragment的使用详解】到此这篇关于Android中PreferenceFragment的使用详解的文章就介绍到这了,更多相关Android PreferenceFragment 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- android第三方框架(五)ButterKnife
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募