通常app都会有一个设置界面,例如以下:

通常做法是自定义布局,然后在代码里面加入响应函数,并将结果保存到Sharedpreferences中。
android给我们提供了PreferenceActivity来简化开发设置界面。

你仅仅需这样做:
1.创建一个类继承PreferenceActivity,并导入设置界面布局:

package com.example.preferenceactivitydemo1;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class MainActivity extends PreferenceActivity
{
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.main_preference);
} }

2.在res文件夹下加入xml文件夹,并创建一个名为main_preference(即代码中引用的资源文件)的文件.
3.编写资源文件。
上图设置界面相应的资源文件例如以下:
<?xml version="1.0" encoding="utf-8"?

>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="标题" >
<PreferenceCategory
android:summary="分组1"
android:title="分组1标题" >
<ListPreference
android:defaultValue="@string/defaultvalues"
android:dialogTitle="对话框标题"
android:entries="@array/entries"
android:entryValues="@array/entriesvalue"
android:key="myListPreference"
android:summary="标题说明"
android:title="小标题" />
<CheckBoxPreference
android:key="doubi"
android:summaryOff="逗比模式关闭"
android:summaryOn="逗比模式开启"
android:title="逗比模式" >
</CheckBoxPreference>
</PreferenceCategory>
<PreferenceCategory
android:summary="分组2"
android:title="分组2标题" >
<SwitchPreference
android:key="fly"
android:summaryOff="已关闭飞行模式"
android:summaryOn="已开启飞行模式"
android:switchTextOff="关闭"
android:switchTextOn="开启"
android:title="飞行模式" >
</SwitchPreference>
<EditTextPreference
android:defaultValue="zhangsan"
android:dialogTitle="编辑姓名"
android:key="name"
android:summary="编辑您的姓名"
android:title="编辑" >
</EditTextPreference>
</PreferenceCategory>
</PreferenceScreen>

当中引用了string.xml的相关内容:

<?xml version="1.0" encoding="utf-8"?

>
<resources>
<string name="app_name">PreferenceActivityDemo1</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="entries">
<item>小苹果</item>
<item>小香蕉</item>
<item>小西瓜</item>
</string-array>
<string-array name="entriesvalue">
<item>apple</item>
<item>banana</item>
<item>watermelon</item>
</string-array>
<string name="defaultvalues">apple</string>
</resources>

恩,就这么简单~

全部结果会保存到data/data/包名/shared_prefs文件夹下的包名_preferences.xml中,跟sharepreferences一样。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

【安卓笔记】高速的发展设置界面-----PreferenceActivity的更多相关文章

  1. 安卓跳转到GPS设置界面

      /** * 监听GPS */ private void initGPS() { LocationManager locationManager = (LocationManager) this . ...

  2. 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label

    安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...

  3. android判断当前网络状态及跳转到设置界面

    今天,想做这个跳转到网络设置界面, 刚开始用 intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 不料老是出现settings.Wirele ...

  4. Android的配置界面PreferenceActivity

    我想大家对于android的系统配置界面应该不会陌生吧,即便陌生,那么下面的界面应该似曾相识吧,假若还是不认识,那么也没有关系,我们这一节主要就是介绍并讲解android 中系统配置界面的使用,相信大 ...

  5. Android4.0设置界面改动总结(三)

    Android4.0设置界面改动总结大概介绍了一下设置改tab风格,事实上原理非常easy,理解两个基本的函数就可以: ①.invalidateHeaders(),调用此函数将又一次调用onBuild ...

  6. Android开发——设置界面的创建

    前言: 最近忙着搞项目,难得有时间,便来整理搞项目中学习到的知识 使用之前,先介绍一下android这种的五种数据储存方式,分别为文件储存,SharePrefence,SQL,使用ContentPro ...

  7. [Openwrt 项目开发笔记]:Openwrt必要设置(二)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 前面的两篇blog中,我将如何搭建Openwrt ...

  8. IOS学习笔记02---语言发展概述,计算机语言简介.

    IOS学习笔记02---语言发展概述,计算机语言简介. ------------------------------------------------------------------------ ...

  9. Xamrin开发安卓笔记(二)

    http://www.cnblogs.com/minCS/p/4112617.html Xamrin开发安卓笔记(二)   安装篇 Xamrin开发安卓笔记(一) 昨天调理一天AAPT.EXE 被推出 ...

随机推荐

  1. SilkTest Q&A 3

    Q21:如何给testcase的属性赋值? A21: 1.确定你的testplan处于打开状态. 2.点击你准备赋属性值的testcase 3.点击TestPlan/detail菜单,testplan ...

  2. oracle检查点队列与增量检查点【转载】

    oracle检查点队列与增量检查点 今天是2013-09-04,这几天一直心里安顿不下来,今天还好了,可以自己安静的学习一下oracle,在此记录一下学习笔记.这篇文章我不知道在那转载的,一直都留在我 ...

  3. ezw证件照芯片压缩算法

    相关网站:http://m.blog.csdn.net/blog/kimwu/12654517 http://blog.sina.com.cn/s/blog_4be751690100bsgb.html ...

  4. RIA Test:try catch 对 Error #1009 (无法访问空对象引用的属性或方法)的处理

    功能: 实现登录账户的强制登录, 用If 判断当前账户是否可用.若可用,则跳出if体直接登录,若不可用,则进入If体点击 “强制登录” 按钮. 问题:如果不可用,则if 条件中的对象不可见,这样程序会 ...

  5. Android---两个视图间的淡入淡出

    本文译自:http://developer.android.com/training/animation/crossfade.html 淡入淡出动画(也可以作为溶解动画)是指在渐渐的淡出一个UI组件的 ...

  6. Powershell Mail module, 发送outbox 里的全部邮件(一个.csv文件代表一封邮件)

    把creating mail代码写到调用处,往outbox写入 mailxxx.csv文件,入面记录了邮件的主要内容 写入 #template $TMP = IMPORT-CSV "$($d ...

  7. coreos docker 尝新奇

    官方介绍了好几种安装方法,我试了下还是认为vmware的比較靠谱. 官方的下载地址也不是非常稳定,我分享了一个在百度云上面,http://pan.baidu.com/s/1hqgkCmS 解压后,直接 ...

  8. 蜗牛—JSONJ学习ava转变

    最近,写网站管理员,使用异步通信技术,所使用的方法是JSON数据传输模式 需要以下jar文件 然后,自己写了一点点经常使用代码 Java的List和数组要用JSONArray对象 Map和实体用JSO ...

  9. spring 定义自己的标签 学习

    自己的自定义配置文件spring 在,有时你想要做一些配置信息的数据结构.基于扩展生意做. 首先: 在项目META-INF文件夹中创建两个文件spring.handlers,和spring.shcem ...

  10. NTFS权限设置时卡死

    客户是一家技术咨询和零部件制造的小公司,使用的文件服务器为R410上插4块1T硬盘做raid 5,服务器操作系统为windows server 2008R2,所有的设计资料的授权都是结合域账户和NTF ...