Android开发教程:PreferenceActivity使用简介

转载 2015年11月18日 11:38:06

转:http://liuzhichao.com/p/528.html

当我们的应用需要保存用户设置信息的时候,你可能会想到用之后学习过的Activity+Preference来完成,前者用于界面构建 后者用于保存用户的设置信息。这理论上来讲这是可行的,但是实际操作起来却是一件很繁琐的事情,特别是当设置项较多的时候, 每个设置选项都要建立与其对应的Preference,还要即时保存用户设置的改变。其实Android已经为我们提供了用于设置界面的组件,那就是PreferenceActivity。Android系统本身就大量用到了PreferenceActivity来对系统进行信息配置和管理,比如Android系统中的设置。下面我们模拟Android中的网络设置,运行效果如下:

 

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.liuzhichao.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(R.xml.netsetting);
	}

}

运行工程,效果即是我们之前的那张效果图。

2、PreferenceActivity元素说明

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

 

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

 

常见属性说明:

title:显示的标题

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

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

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

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

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

dialogTitle:弹出对话框的标题

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

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


利用PreferenceFragment替换PreferenceActivity

谷歌Settings:http://developer.android.com/guide/topics/ui/settings.html   这篇与前面三篇博客内容大致相同,只是替换掉了过期的Pre...
  • zhangli_
  • zhangli_
  • 2015年12月03日 16:39
  • 1014

PreferenceActivity的使用

PreferenceActivity是一个非常有用的基类,当我们开发Android项目时避免不了选项设置,这些设置习惯用Preference来保存。Android专门为这种Activity提供了便捷的...
  • lxq_xsyu
  • lxq_xsyu
  • 2014年02月12日 10:35
  • 4434

Android之设置页面(PreferenceActivity使用)

Android之设置页面(PreferenceActivity使用)
  • zq2114522
  • zq2114522
  • 2016年01月21日 21:41
  • 2764

android设置页面之PreferenceActivity及Preference

离上篇博客刚好一周,希望后面会记录更多的内容,也算自己的Android笔记吧。     本篇主要记录一般的android设置页面PreferenceActivity的使用以及与之剪不断,理还乱...
  • w7849516230
  • w7849516230
  • 2013年08月11日 16:46
  • 9202

Android实战技巧之六:PreferenceActivity使用详解

一、写作前面 当我们做应用的时候,需要用户配置一些信息,而这就是通常所说的应用设置。 对于Android系统来说,系统本身的设置带来的用户体验和习惯已经深入人心,在我们的应用中同样用到类似的设置页,...
  • lincyang
  • lincyang
  • 2014年03月06日 20:49
  • 41019

PreferenceActivity 偏好设置

PreferenceResource中各个组件的介绍。 Preference的布局在: res/xml/下新建preference.xml通常是用fragment来显示Preference,然后将f...
  • qq_37679744
  • qq_37679744
  • 2017年04月20日 08:59
  • 353

Android PreferenceActivity点击Header是如何处理的?

1、设置源代码中点击事件处理逻辑 2、通过Action调用Settings设置应用界面的流程。 3、设置源代码中Header的注意事项...
  • hailushijie
  • hailushijie
  • 2014年01月08日 22:32
  • 4807

PreferenceActivity、PreferenceFragment使用

目录目录 前言 PreferenceActivity preferences_scenario_1xml Preference Activity 演示 PreferenceFragment xml布局...
  • zinss26914
  • zinss26914
  • 2015年07月01日 16:53
  • 4641

Android PreferenceActivity源码分析与使用总结

PreferenceActivity可以显示一系列Header,每一个Header可以关联一个Fragment或者Activity。此外,它还可以直接显示Preference条目。 Preferenc...
  • u011913612
  • u011913612
  • 2016年07月25日 11:47
  • 1448

PreferenceActivity 修改背景颜色

PreferenceScreen PreferenceXXXPreferenceXXX并不是在 他的xml 中修改的,当时傻的修改半天一直没效果在 界面的 style 中添加入如下属性设置 ...
  • kongbaidepao
  • kongbaidepao
  • 2017年06月17日 16:22
  • 467
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发教程:PreferenceActivity使用简介
举报原因:
原因补充:

(最多只允许输入30个字)