通常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. discuz清空session,导致session保存机制失败,session无法更新与解决

    <?php function userErrorHandler() { $e = func_get_args(); echo '<pre style="color:red;&qu ...

  2. bootstrap css选择不同的宽度

    刚开始使用bootstrap css开源项目.遇到一个问题,默认的input 宽度太大,需要找小一点的. 其实只需要在input tag中选用预定义的较小的宽度即可.比如: <input typ ...

  3. [半原创]指纹识别+谷歌图片识别技术之C++代码

    原地址:http://blog.csdn.net/guoming0000/article/details/8138223 以前看到一个http://topic.csdn.net/u/20120417/ ...

  4. Uva - 11419 - SAM I AM

    题意:一个矩形——R*C的网格,在某些位置上有石头,在网格外开一炮可以打掉该行或者该列的石头,求打掉这些石头最少需要多少门大炮,位置分别设在哪行哪列(0<R<1001, 0 < C ...

  5. AccountManager使用教程

    API解读 这个类给用户提供了集中注冊账号的接口.用户仅仅要输入一次账户password后,就能够訪问internet资源. 不同的在线服务用不同的方式管理用户,所以account manager 为 ...

  6. php 多进程中的信号问题

    1.以下代码sleep时间远小于20 <?php // 当子进程退出时,会触发该函数 function sig_handler($sig) { switch($sig) { case SIGCH ...

  7. 【iOS开发-76】Private Contacts案例:导航控制器使用、数据传递、第三方类库使用、tableViewCell的加入删除、数据存储等

    (1)效果 (2)源码与第三方类库下载 http://download.csdn.net/detail/wsb200514/8155979 (3)总结 --导航控制器,能够直接用代码的push和pop ...

  8. Session为空的一种原因

    在维护一份比较老的代码,想改为ajax调用,然后就添加了一个一般处理程序文件,也就是以.ashx结尾的文件,一切都正常,但发现session一直为空,很奇怪 基本的代码如下: public class ...

  9. Urban Dictionary: psd

    Urban Dictionary: psd psd Share on twitter Share on facebook Share on more 3 up, 1 down It means Poo ...

  10. Android -&gt; 怎样避免Handler引起内存泄露

    很多其它内容,可訪问个人博客www.liangfeizc.com 错误代码 假设在Activiy中通过内部类(Runnable)的方式定义了一个变量runnable, final Runnable r ...