这篇文章主要介绍“Android中PreferenceFragment的简单介绍及使用方法”,在日常操作中,相信很多人在Android中PreferenceFragment的简单介绍及使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android中PreferenceFragment的简单介绍及使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
PreferenceFragment简介
PreferenceFragment使用
PreferenceFragment 扩展
在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,Android专门为这种Activity提供了便捷的基类PreferenceActivity(如果是Fragment,使用PreferenceFragment,现在推荐使用v7包下的PreferenceFragmentCompat),这些类内部封装了Preference,会帮我们自动读写设置,方便开发者便捷完成这类功能。
PreferenceFragment
位于android.preference
包下,现在推荐使用v7包下的,这里还是使用这个来说明,原理是一样的。
先来使用下:
在res目录下创建xml目录
在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文件 } }
运行效果:
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);
可以通过继承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的简单介绍及使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。