博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习之Shared Preference
阅读量:5882 次
发布时间:2019-06-19

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

  在之前遇到有个需求是要改settings里面自动转屏的首选项,于是就学习了下Shared Preference。Shared Preference是一种简单的、轻量级的键/值对机制,用于保存原始应用程序数据,最常见的就是首选项。

  如果没有特殊要求,我们可以使用Android提供的框架来创建系统样式的Preference Screen,在其内部可以包含PreferenceCategory和Preference<control>元素的任意组合。建立Preference Screen,需要向里面添加首选项控件,原生的这些控件有:CheckBoxPreference、EditTextPreference、ListPreference、MultiSelectListPreference和RingtonePreference,每种控件至少包含4种属性:android:key,android:title,android:summary,android:defaultValue,用一种图来对其进行说明:

   创建Preference有两种方法,第一种是使用PreferencesActivity。首先在res/values下创建一个arrays.xml用于存放ListPreference的数据

1 
2
3
4
Every Minute
5
5 minutes
6
10 minutes
7
15 minutes
8
Every Hour
9
10
11
1
12
3
13
5
14
6
15
7
16
8
17
18
19
1
20
3
21
5
22
6
23
7
24
8
25
26
27
1
28
5
29
10
30
15
31
60
32
33 34

然后在res/xml下创建userpreferences.xml,用于定义PreferenceScreen

1 
2
4
9
17
25

最后在MainActivity中重写onCreate方法,这个MainActivity要继承PreferenceActivity,使用addPreferencesFromResource添加PreferenceScreen

1 public class MainActivity extends PreferenceActivity 2 { 3     @Override 4     protected void onCreate(Bundle savedInstanceState) 5     { 6         // TODO Auto-generated method stub 7         super.onCreate(savedInstanceState); 8         addPreferencesFromResource(R.xml.userpreferences); 9     }10 }

 OK,搞定,效果如图

                    

  第二种方法是使用PreferenceFragment,首先创建UsePreferenceFragment类继承PreferenceFragment类,重写onCreate方法,使用addPreferencesFromResource来加载userpreferences.xml

1 public class UserPreferenceFragment extends PreferenceFragment 2 { 3     @Override 4     public void onCreate(Bundle savedInstanceState) 5     { 6         // TODO Auto-generated method stub 7         super.onCreate(savedInstanceState); 8         addPreferencesFromResource(R.xml.userpreferences); 9     }10 }

然后在res/xml下创建preference_headers.xml,来关联UsePreferenceFragment

1 
2
4
7

 最后在MainActivity中重写onBuildHeaders方法

1 public class MainActivity extends PreferenceActivity2 {    3     @Override4     public void onBuildHeaders(List
target)5 {6 // TODO Auto-generated method stub7 loadHeadersFromResource(R.xml.preference_headers, target);8 }9 }

 搞定,效果如图:                然后点击Settings就会进入下个界面

                                                                        

转载于:https://www.cnblogs.com/ppdark/p/3341249.html

你可能感兴趣的文章
FB全球开放360度直播功能 首先需要一个FB账号
查看>>
量子通信成信息安全领域发展重点 潜在市场望达1000亿元
查看>>
数据中心新的自动化运维技术
查看>>
OpenFlow下一步该怎么走?
查看>>
CoreOS为容器安全带来不同方法
查看>>
用EXCEL导入QC需求和测试用例详解
查看>>
中了WannaCry病毒的电脑几乎都是Win 7
查看>>
iOS开发月报#2|201808
查看>>
SMSSDK进化之路
查看>>
【干货来袭】使用 Python 扩展 UiBot 的功能
查看>>
node之搭建一个http完整的静态服务器(命令行工具)
查看>>
阿里云IPv6 DDoS防御被工信部认定为“网络安全技术应用试点示范项目
查看>>
史上最快Docker入门实战! (二) - Docker环境的搭建方法
查看>>
【思维导图】PHP基础
查看>>
小程序使用之自定义组件
查看>>
Java springcloud B2B2C o2o多用户商城 springcloud架构(四):熔断器Hystrix
查看>>
spring cloud微服务分布式云架构-服务消费者Feign
查看>>
Lua Windows环境搭建以及配置netbeans IDE Glider插件For Lua
查看>>
TypeScript系列1-简介及版本新特性
查看>>
Microsoft Speech Platform
查看>>