博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android设置中PreferenceActivity的 小结
阅读量:4038 次
发布时间:2019-05-24

本文共 2639 字,大约阅读时间需要 8 分钟。

       设置界面中用得比较多的PreferenceActivity,它包含了许多 类似控件 的东西 来表示不同的设置需求如:分类设置,选择框设置,下拉列表设置,编辑框设置,铃声设置,而且这些设置不需要我们自己来保存用户设置的数据,它自己会将数据保存在xml文件当中。以下是PreferenceActivity中各个组件的介绍。

PrefeneceActivity提供了以下几项

    常用参数说明

title:显示标题(大字体显示)

summary:副标题(小字体显示)

key:唯一标识(至少在同一程序中是唯一),SharedPreferences也将通过此Key值进行数据保存,也可以通过key值获取保存的信息 (以下相同)

dependency:标识此元素附属于某一个元素(通常为CheckBoxPreference),dependency值为所附属元素的key。例如代码中的Preference元素的值,等于的CheckPreference元素的key,当CheckPreference被选中时,Preference则为可用,否则为不可用。

persistent:是否要将preference存储到shared preferences中。

+++++++++++++++++++++++++

1. PreferenceScreen:用作xml的根元素。用它可嵌套形成 二级设置页面,还可以Intent启动 指定的activity

2.
PreferenceCategory
用于分组,它
可以将几个 模块 组合在一起
然后 可用Title参数 设置个大标题,相当于一个分界线的东西一样,它的上面和下面分别属于不同类型的设置。

3. CheckBoxPreference:是一个CheckBox设置,值的类型是布尔值:true或false。

summaryOn和summaryOff 参数 来设置控件选中和未选中时的提示

defaultValue="true" 第一次 使用是 选中。

4. ListPreference列表选择,弹出对话框供选择

dialogTitle设置下拉框的标题

defaultValue=“0” //注意,0 默认 选中 第一项,1 默认 选中 第二项,以此类推,defaultValue 的值是 字符型。

entries 和 entryValues分别表示 显示的值 和 代码中获取的真正的值,他们一定要是 字符数组下拉框内显示的内容和具体的值需要在res/values/array.xml中设置两个array来表示,例如array.xml设置如下:   

<?xml version ="1.0" encoding ="utf-8" ?>
<resources>
<
string-array name ="entries_list_preference" >
    <item> test1</item>
    <item> test2</item>
    <item> test3</item>
</string-array>
<
string-array name ="entriesvalue_list_preference" >
    <item> 1</item>
    <item> 2</item>
    <item> 3</item>
</string-array>
</resources>

5. EditTextPreference:输入框控件,点击后 弹出一个输入框,值为String类型

dialogTitle参数 设置输入框的标题

6. RingtonePreference:弹出铃声选择框,点击后可选择 系统铃声。

dialogTitle参数设置铃声选择框的标题,值的类型是string

7.
Preference:只是 单一的 显示文本信息,
不能够 嵌套 显示 二级界面;

  

       以上是PreferenceActivity的xml描述,那么在程序中我们只需要新建一个继承自PreferenceActivity的 Activity,然后在主程序中调用就可以了。这个PreferenceActivity中的设置存储是完全自动的,你不需要再用代码去实现设置的存储,PreferenceActivity创建后,会自动创建一个配置文件/data/data/your_package_name /shared_prefs/(your_package_name)_preferences.xml。自动生成的配置文件如下:

   
<?xml version ='1.0' encoding ='utf-8' standalone ='yes' ?>
<map>
    <string name ="EditTextPreference" >12332312</string>
    <string name ="ListPreference" >2</string>
    <string name ="RingtonePreference" >content://media/internal/audio/media/10</string>
    <boolean name ="CheckBox1" value ="true" />
    <boolean name ="CheckBox2" value ="true" />
</map>

文件中的name属性对应xml文件中的key属性表示某一个设置项,值是唯一的,boolean以及string中间的值表示设置项的具体值。

如何响应PreferenceActivity的操作

只要重写PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通过参数preference来判断是对那一个元素进行的,并根据需要进行操作。代码如下:

@Override
public boolean
onPreferenceTreeClick(PreferenceScreen preferenceScreen,
            Preference preference) {
    // TODO Auto-generated method stub
    return super.onPreferenceTreeClick(preferenceScreen, preference);
}

这样到此为止,我们在APP中就实现了设置功能。

转载地址:http://cspdi.baihongyu.com/

你可能感兴趣的文章
ip限制
查看>>
IE6 png 透明
查看>>
列表拖动排序
查看>>
select实例,拼音检索
查看>>
Spring MVC @Transactional注解方式事务失效的解决办法
查看>>
js正则表达式限制文本框只能输入数字,小数点,英文字母
查看>>
Spring事务失效的原因
查看>>
mybatis获取数据库表字段名+数据
查看>>
使用springfox整合SpringMVC和Swagger
查看>>
JAVA静态代理和动态代理
查看>>
使用Navicat计划任务备份mysql数据库
查看>>
Java高并发,如何解决,什么方式解决
查看>>
深入理解分布式事务,高并发下分布式事务的解决方案
查看>>
分布式事务一些总结与思考
查看>>
Spring Cloud微服务架构实践与经验总结
查看>>
Spring Boot入门篇
查看>>
spring cloud服务的注册与发现(Eureka)
查看>>
Java IO流
查看>>
多线程
查看>>
互联网产品设计:产品即服务
查看>>