服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android中PreferenceFragment的使用详解

Android中PreferenceFragment的使用详解

2021-12-23 12:45这个杀手不太累 Android

本文主要介绍了Android中PreferenceFragment的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

PreferenceFragment简介

在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,Android专门为这种Activity提供了便捷的基类PreferenceActivity(如果是Fragment,使用PreferenceFragment,现在推荐使用v7包下的PreferenceFragmentCompat),这些类内部封装了Preference,会帮我们自动读写设置,方便开发者便捷完成这类功能。

 

PreferenceFragment使用

PreferenceFragment位于android.preference包下,现在推荐使用v7包下的,这里还是使用这个来说明,原理是一样的。

Android中PreferenceFragment的使用详解

先来使用下:

在res目录下创建xml目录

Android中PreferenceFragment的使用详解

在xml目录下创建xml文件(文件名自己定义即可)
这里演示的文件是pref_setting.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

  <CheckBoxPreference
      android:defaultValue="false"
      android:key="setting_no_img"
      android:summary="仅在WIFI环境下显示图片"
      android:title="无图模式" />

  <PreferenceCategory android:title="设置">

      <EditTextPreference
          android:hint="设置用户名"
          android:key="setting_name"
          android:title="设置用户名" />

      <Preference
          android:key="setting_font_size"
          android:summary="设置字体大小"
          android:title="设置字体大小" />
  </PreferenceCategory>

  <SwitchPreference
      android:defaultValue="false"
      android:key="setting_switch"
      android:title="设置模式-Switch" />

  <RingtonePreference
      android:key="setting_ring"
      android:title="设置模式-Ringtone" />
</PreferenceScreen>

继承PreferenceFragment,在onCreate方法中调用addPreferencesFromResource方法加载xml目录下的资源即可

public class PreferenceTestFragment extends PreferenceFragment {

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      addPreferencesFromResource(R.xml.pref_setting);//加载xml文件
  }
}

运行效果:

Android中PreferenceFragment的使用详解

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的使用详解的文章就介绍到这了,更多相关Android PreferenceFragment 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/zhe_ge_sha_shou/article/details/87633282

延伸 · 阅读

精彩推荐
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4642021-03-09
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810052021-05-03
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6192021-03-27
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7452021-03-11
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8342021-03-31
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9602022-03-02
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4672021-01-03