千家信息网

Android中PreferenceFragment的简单介绍及使用方法

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"Android中PreferenceFragment的简单介绍及使用方法",在日常操作中,相信很多人在Android中PreferenceFragment的简单介绍及使用方法问题上存
千家信息网最后更新 2025年01月19日Android中PreferenceFragment的简单介绍及使用方法

这篇文章主要介绍"Android中PreferenceFragment的简单介绍及使用方法",在日常操作中,相信很多人在Android中PreferenceFragment的简单介绍及使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"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 {    @Override    public 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() {            @Override            public boolean onPreferenceClick(Preference preference) {                                //todo                return 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);    }        // 绑定视图    @Override    protected 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的简单介绍及使用方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0