首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。
Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个优雅的首选项界面。
首先,我们来看下面这款软件的首选项界面:
这款软件使用了好几种类型的首选项,每一种首选项都有其独特的用法,下面我们来了解一下几种常见的首选项:
CheckBoxPreference:用来打开或关闭某个功能
ListPreference:用来从多个选项中选择一个值;
EditTextPreference:用来配置一段文字信息;
Preference:用来执行相关的自定义操作(上图中的清除缓存、历史记录、表单、cookie都属于此项);
RingtonePreference:专门用来为用户设置铃声。
当我们使用首选项框架时,用户每更改一项的值后,系统就会立即在/data/data/[PACKAGE_NAME]/shared_prefs下生成一个[PACKAGE_NAME]_preferences.xml的文件,文件会记录最新的配置信息。
那么如何使用首选想框架呢?我们需要以下几步操作:
1.建立一个首选项的xml配置文件,放在项目的/res/xml目录下面;
2.新建一个Activity,继承android.preference.PreferenceActivity,然后在onCreate方法中加载我们的首选项配置文件。
下面,我就为大家演示一下首选项框架的配置和使用:
我们新建一个prefs项目,项目结构如下:
我们要实现的功能跟上面那款软件的很相似,下面我来说明一下这个项目的整体流程:
1.主界面。显示用户昵称,有三个参数,昵称文字、字体大小和背景颜色。首次进入时,使用默认值。
2.按下menu键中的settings项,跳转到首选项页面,进行参数选择。
3.按下返回键,返回主界面,设定后的参数生效。
首先,让我们来看一下主界面的配置文件,非常简单,就一个TextView:
然后,我们需要在主界面里根据配置参数设置TextView的外观以及背景,MainActivity.java代码如下:
可以看到,进入主界面之后会根据[PACKAGE_NAME]_preferences获取首选项配置信息,如果是首次进入,则使用默认值,下面就是我们首次进入主界面时的画面:
可以看到,我们初次进入的界面时昵称为“机器人”,字的背景为白色,字的大小为18号。
然后按下Settings之后,我们就可以进行首选项的配置了,让我们先来看一下settings.xml的配置:
其中,最外层是PreferenceScreen标签,代表一系列首选项的集合;然后,我们注意到PreferenceCategory这一项,此标签代表一个类别,可以包含多个首选项;最后就是我们用于配置参数的首选项了。需要了解的是,PreferenceScreen也可以嵌套使用,也就是说上面的PreferenceCategory可以替换成PreferenceScreen。
此外,我们还需要了解一下文件中出现的几个常用标签属性:
android:key 选项的名称或键
android:title 选项的标题
android:summary 选项的简短摘要
android:entries 列表项的文本
android:entryValues 列表中每一项的值
android:dialogTitle 对话框标题
android:defalutValue 列表中选项的默认值
对于CheckBoxPreference还有两个特殊的属性
android:summaryOn 选项被选中时显示的摘要
android:summaryOff 选项未选中时显示的摘要
我们还可以看到,在ListPreference中,entries来自于textSize_entry,而entryValues来自于textSize_entry_value,这两项都在/res/values目录下的text_size.xml配置:
配置完成之后,我们就剩下最后一步了,创建Activity,继承PreferenceActivity,加载首选项资源文件,处理相应的选项事件。
PrefsActivity.java代码如下:
最后,别忘了在AndroidManifest.xml中加入此Activity配置信息:
当然我们也可以配置一下<intent-filter></intent-filter>属性。
经过以上几步,我们的首选项配置就完成了,首次进入的界面如下:
然后我们分别更改昵称、夜间模式、文字大小,如下:
可以看到,当我们更改了选项的值之后,摘要部分已经设置为最新值了,此时在我们应用下的shared_prefs目录中生成一个com.scott.prefs_preferences.xml文件,如图:
内容如下:
此时,我们按回退键,回到主界面,发现刚才的设置已经生效了:
可以看到,昵称已经更改成“scott”,字的背景已更改为黑色,字的大小已更改为36号。
如果我们在首选项界面按下清除历史记录一项,将会出现一下界面:
分享到:
相关推荐
首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。本篇文章主要介绍详解Android首选项框架的使用实例,有兴趣的可以了解一下。
NULL 博文链接:https://z466459262.iteye.com/blog/1299208
Android_动画框架基本原理详解.doc
spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用...
绝对是中文里面对opencore工作原理最详细的分析,涉及codec集成,android多媒体框架,引擎状态切换等
Android 动画框架详解由原理篇和实例篇两部分组成。本文是第一部分原理篇,主要分析 Tween 动画的实现原理, 最后简单介绍在 Android 中如何通过播放 Gif 文件来实现动画。第二部分实例篇将在原理篇的基础上,向您...
AndroidStudio使用详解 AS快捷键图解
博客介绍:http://blog.csdn.net/qq_21376985/article/details/52836423 【Android】Android开发之著名框架ButterKnife的使用详解,butterknife8.1.0版本的使用方法
详细讲解如何使用MINA配合Android客户端实现聊天功能,解决中文乱码问题,解决Android客户端接收不到消息问题
Android 动画框架详解第 1 部分,共两部分
2.Android.mk和Android.bp语法大全及使用方法详解 3.Android.mk或Android.bp中引用Android的第三方(jar、aar、so)、Androidx的类库等的使用方法 4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等...
简单明了让你明白mvp架构,简单明了让你明白mvp架构简单明了让你明白mvp架构简单明了让你明白mvp架构简单明了让你明白mvp架构简单明了让你明白mvp架构简单明了让你明白mvp架构简单明了让你明白mvp架构
详解Android中AsyncTask的使用。
详解 Android 的 Activity 组件,详解 Android 的 Activity 组件
Android开发教程之动画框架详解,第 1 部分
Android 数据库SQLite 详解,简单学好SQLite
本文档总结说明了android动画框架的设计及使用
《Android核心技术和开发详解》各章案例的全部源代码,第一章将要介绍的是Android开发起步的相关知识,首先对Android平台进行简单的介绍,其中包括Android的背景及其应用程序的框架。然后会向读者讲解如何搭建....
主要介绍了详解Android的MVVM框架 - 数据绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Android toolbar 使用详解,一个不错的学习toolbar的例子,里面包括各种toolbar用法