PreferenceActivity 用法

当我们的app要保存用户设置信息时候,你可能使用Acitivity+SharePreference来存储。但其实Android已经为我们提供了更好的选择,那就是PreferenceActivity。此外PreferenceActivity也可以呗其他第三方应用程序使用。

一。关于Preference Activity

Preference Activity框架由四个部分构成:

(1)Preference Screen布局 一个XML文件

(2)Preference Activtiy 和 Preference Fragment(Android3.0后才有的)

(3)Preference Header

(4)Shared Preference 变化监听程序 一个onSharedPreferenceChangeListener类的实现。用于监听Shared Preference 的变化

注意:在android3.0之前是没有Preference Fragment概念的。PreferenceAcitivity直接包含Preference Screen的。但是在Android3.0之后是PreferenceActivity→包含→Preference Fragment →包含→ Preference Screen。在使用PreferenceAcitivity的时候要注意Android系统版本的兼容性问题(3.0 之前和之后)。

二。创建PreferenceActivity

1、如何创建一个PreferenceActivity?

我们借助Eclipse可以很方便的创建PreferenceActivity,新建一个工程,然后添加一个Android xml文件,这里需要选择的是Preference而不是layout或其他,当我们输入名称后可以在res/xml下找到你新建的xml文件。接着我们可以通过可视化的结构设计或者xml源码设计添加设置项。

下面是我们这个例子中的设置项信息:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory
        android:key="set_net"
        android:title="网络设置" >
        <CheckBoxPreference
            android:key="set_3g"
            android:summary="使用3G虽可提高数据载入速度,但可能会降低电池寿命"
            android:title="启用3G" />
        <CheckBoxPreference
            android:key="set_2g"
            android:summaryOff="打开蜂窝数据"
            android:summaryOn="关闭蜂窝数据"
            android:title="蜂窝数据" />

        <Preference
            android:key="set_2g_net"
            android:title="蜂窝数据网络" />

        <CheckBoxPreference
            android:key="set_roving"
            android:summary="在境外时请关闭数据漫游"
            android:title="数据漫游" />
    </PreferenceCategory>
    <PreferenceCategory
        android:key="set_VPN_Category"
        android:title="VPN设置" >
        <Preference
            android:key="set_VPN"
            android:title="设置VPN" />
    </PreferenceCategory>

</PreferenceScreen>

怎么显示呢?只需创建一个Activity继承自PreferenceActivity类即可。

代码如下:

package com.test.sharedpreferences;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class SharedPreferencesDemoActivity extends PreferenceActivity  {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 所的的值将会自动保存到SharePreferences     //主意此处使用的是addPreferencesFromResource()方法
        addPreferencesFromResource(R.xml.netsetting);
    }

}

现在我们完成啦。运行一下看看效果把:

2、PreferenceActivity元素说明

我们在新建的setting.xml里按Alt+/ 可以看到PreferenceActivity中的元素如下:

  • CheckBoxPreference:CheckBox选择项,对应的值的ture或flase
  • EditTextPreference:输入编辑框,值为String类型,会弹出对话框供输入。
  • ListPreference: 列表选择,弹出对话框供选择。
  • Preference:只进行文本显示,需要与其他进行组合使用。
  • PreferenceCategory:用于分组。
  • PreferenceScreen:PreferenceActivity的根元素
  • RingtonePreference:系统玲声选择。
  • PrefeneceActivity都提供了哪几种元素可供使用
  • MultiSelectListPreference 在android3.0(API LEVEL 11)中引入的首选项,类似于复选框列表。

尽管每个首选项控件可用的特定属性不同,但是至少有以下四个属性是不变的

android:title,

android:key,

android:summary,

android:defaultValue

常见属性说明:

title:显示的标题

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

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

defaultValue:默认值(当然,此处只能是true或false了)

android:summaryOn:属性开启的时候的说明

android:summaryOff:属性关闭时候的说明

dialogTitle:弹出对话框的标题

entries:列表中显示的值。为一个数组,通读通过资源文件进行设置。

entryValues:列表中实际保存的值,也entries对应。为一个数组,通读通过资源文件进行设置。

三.监听PreferenceActivity的变化

参考网址(http://liuzhichao.com/p/528.html)

PreferenceActivity 用法

时间: 2024-10-16 05:02:51

PreferenceActivity 用法的相关文章

我的Android进阶之旅------&gt;经典的大牛博客推荐(排名不分先后)!!

本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超博客 Android中文Wiki AndroidStudio-NDK开发-移动开发团队谦虚的天下 - 博客园gundumw100博客 - android进阶分类文章列表 - ITeye技术网站CSDN博文精选:Android系列开发博客资源汇总 - CSDN.NET - CSDN资讯Android笔

推荐几篇好的博文

推荐网址: UI设计类: 源代码托管: 移动开发 界面优化 兼容屏幕 布局详解 JNI入门 AndroidMk NDK相关问题 NDK_GDB调试 CrystaX CSDN每周博文 其它博客 开发工具问题 源码控制工具 混淆反编 Unbutu使用技巧 性能测试 CVS_Git 反编译工具 Android游戏 小米刷机 三星刷机 联想刷机 蓝晨刷机 中兴刷机 华为刷机 Fulinpengda刷机 HTC刷机 摩托刷机 塞班刷机 刷机中问题 手机问题 Java底层 源码网站 源码编译 源码搜索 EO

addPreferencesFromIntent 用法

当我们继承PreferenceFragment的时候我们经常调用这方法: addPreferencesFromResource(R.xml.setting_preference); 因为最近的项目我都要把程序的资源文件都放到另一个apk中.而上面这个方法中只能传本地的或系统的资源id.那么我就找到了类似的方法:addPreferencesFromIntent(Intent intent);百度goolge了一下发现都是没有这个方法的例子只有搜索google的里面的api: public void

android中SharedPreferences和PreferenceActivity的存取数据

本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法. 主要资料来源于网络,包括但不限于: <Android之PreferenceActivity>--http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html <在Android中Preferences数据存储的使用> <Android的设置界面及Preference使用> <OnPreferen

PreferenceActivity源码分析与简单应用

· PreferenceActivity可以显示一系列Header,每一个Header可以关联一个Fragment或者Activity.此外,它还可以直接显示Preference条目. · PreferenceActivity显示Header的时候有两种模式:single pane和two panes:如果是Fragment,那么在two panes模式下,也就是大屏模式下,它可以同时显示Header和Fragment,这充分利用了屏幕的空间.而在singlepane模式下只会显示Header,

PreferenceActivity

此类继承了Activity,用来在首选项设置中使用,和Activity一样,它需要一个资源文件,不过不是layout中的xml文件.在res中新建一个xml文件,在xml文件中新建一个Android xml file,如下图 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/a

Android Preference API 用法--ListPreference(一)

一.ListPreference简介 我们都只知道SharedPreference非常适合于参数设置功能,在此处的preference 也是代表SharedPreference的意思,在SharedPreference中,我们可以迅速的将某些值保存进xml文件中,然后我们可以读取这些设置信息进行相应的操作. 为了简化与preference相关的应用开发,android为我们提供了一系列的api来帮助我们.主要有 PreferenceActivity,CheckBoxPreference,Edit

preferenceActivity源码解析与简单用例

PreferenceActivity可以显示一系列Header,每一个Header可以关联一个Fragment或者Activity.此外,它还可以直接显示Preference条目. PreferenceActivity显示Header的时候有两种模式:single pane和two panes:如果是Fragment,那么在two panes模式下,也就是大屏模式下,它可以同时显示Header和Fragment,这充分利用了屏幕的空间.而在singlepane模式下只会显示Header,无论如何

js中获取时间new date()的用法

js中获取时间new date()的用法 获取时间:   var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();