通常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. 14.3.5.2 Deadlock Detection and Rollback 死锁检测和回滚:

    14.3.5.2 Deadlock Detection and Rollback 死锁检测和回滚: InnoDB 自动检查四艘,回滚一个事务或者事务来打破死锁. InnoDB 试图选择小的事务来回滚, ...

  2. java之jvm学习笔记十三(jvm基本结构)

    java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...

  3. (step5.1.2)hdu 1305(Immediate Decodability——字典树)

    题目大意:输入一系列的字符串,判断这些字符串中是否存在其中的一个字符串是另外一个字符串的前缀.. 如果是,输出Set .. is not immediately decodable 否则输出Set . ...

  4. Spring MVC Hello World Example(转)

    Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, i ...

  5. H2O是开源基于大数据的机器学习库包

    H2O是开源基于大数据的机器学习库包 H2O能够让Hadoop做数学,H2O是基于大数据的 统计分析 机器学习和数学库包,让用户基于核心的数学积木搭建应用块代码,采取类似R语言 Excel或JSON等 ...

  6. poj 1991 Turning in Homework dp

    这个可以证明必须从两边的任务开始交起,因为中间交的任务可以后面经过的时候再交,所以就变成了一个n*n的dp. #include <iostream> #include <cstdio ...

  7. Android支付接入(七):Google In-app-Billing

    前段时间有事请耽搁了,今天跟大家一起看下Google的in-app Billing V3支付.    如果没有Google Play此处附上安装Google Play的一键安装器的链接(需要Root权 ...

  8. 开源语法分析器--ANTLR

      序言 有的时候,我还真是怀疑过上本科时候学的那些原理课究竟是不是在浪费时间.比方学完操作系统原理之后我们并不能自己动手实现一个操作系统:学完数据库原理我们也不能弄出个像样的DBMS出来:相同,学完 ...

  9. RequireJS学习资料

    RequireJS学习资料汇总   入门系列 [1]阮一峰 RequireJS用法 [2]RequireJS入门指南 文档系列 [1]RequireJS中文文档 [2]RequireJS英文文档 代码 ...

  10. phantomjs,selenium,pyv8,pythonwebkit,,,,,,,,,,,,,

    Pyv8,PythonWebKit,Selenium,PhantomJS,Ghost.py 等等.... 快速构建实时抓取集群[searchtb] 定义:http://i.cnblogs.com/Ed ...