zoukankan      html  css  js  c++  java
  • Android开发教程:PreferenceActivity使用简介

    Android开发教程:PreferenceActivity使用简介


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

    1、如何创建一个PreferenceActivity?

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

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <PreferenceScreenxmlns:android="http://schemas.android.com/apk/res/android" >
    3  
    4     <PreferenceCategory
    5         android:key="set_net"
    6         android:title="网络设置" >
    7         <CheckBoxPreference
    8             android:key="set_3g"
    9             android:summary="使用3G虽可提高数据载入速度,但可能会降低电池寿命"
    10             android:title="启用3G" />
    11         <CheckBoxPreference
    12             android:key="set_2g"
    13             android:summaryOff="打开蜂窝数据"
    14             android:summaryOn="关闭蜂窝数据"
    15             android:title="蜂窝数据" />
    16  
    17         <Preference
    18             android:key="set_2g_net"
    19             android:title="蜂窝数据网络" />
    20  
    21         <CheckBoxPreference
    22             android:key="set_roving"
    23             android:summary="在境外时请关闭数据漫游"
    24             android:title="数据漫游" />
    25     </PreferenceCategory>
    26     <PreferenceCategory
    27         android:key="set_VPN_Category"
    28         android:title="VPN设置" >
    29         <Preference
    30             android:key="set_VPN"
    31             android:title="设置VPN" />
    32     </PreferenceCategory>
    33  
    34 </PreferenceScreen>

    那么如果显示呢?然后我们创建一个Activity继承自PreferenceActivity类即可。代码如下:

    1 package com.liuzhichao.sharedpreferences;
    2  
    3 import android.os.Bundle;
    4 import android.preference.PreferenceActivity;
    5  
    6 public class SharedPreferencesDemoActivity extends PreferenceActivity  {
    7  
    8     @Override
    9     public void onCreate(Bundle savedInstanceState) {
    10         super.onCreate(savedInstanceState);
    11         // 所的的值将会自动保存到SharePreferences
    12         addPreferencesFromResource(R.xml.netsetting);
    13     }
    14  
    15 }

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

    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对应。为一个数组,通读通过资源文件进行设置。

  • 相关阅读:
    ListView的CheckBox实现全部选中/不选中
    JTA 深度历险
    缓存更新的套路是怎样的?
    对ThreadLocal实现原理的一点思考
    透彻理解Spring事务设计思想之手写实现
    JAVA 线程池架构浅析
    ThreadPoolExecutor 线程池浅析
    MySql实现sequence功能的代码
    MySql事务select for update及数据的一致性处理讲解
    MySQL四种事务隔离级别详解
  • 原文地址:https://www.cnblogs.com/appzhang/p/2648009.html
Copyright © 2011-2022 走看看