PreferenceActivity使用简介

PreferenceActivity使用简介原文地址 http liuzhichao com p 528 html 当我们的应用需要保存用户设置信息的时候 你可能会想到用之后学习过的 Activity Preference 来完成 前者用于界面构建后者用于保存用户的设置信息 这理论上来讲这是可行的 但是实际操作起来却是一件很繁琐的事情 特别是当设置项较多的时候 nbsp 每个设置选项都要建立与其对应的 Preference 还要即时保

原文地址:http://liuzhichao.com/p/528.html



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

PreferenceActivity使用简介

 

1、如何创建一个PreferenceActivity?

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

 

 
  xml version="1.0" encoding="utf-8"?>  
    
      
    xmlns:android 
    = 
    "http://schemas.android.com/apk/res/android" 
      
    > 
      
     
      
        
      android:key 
      = 
      "set_net" 
        
      android:title 
      = 
      "网络设置" 
        
      > 
        
       
        
          
        android:key 
        = 
        "set_3g" 
          
        android:summary 
        = 
        "使用3G虽可提高数据载入速度,但可能会降低电池寿命" 
          
        android:title 
        = 
        "启用3G" 
          
        /> 
          
         
          
            
          android:key 
          = 
          "set_2g" 
            
          android:summaryOff 
          = 
          "打开蜂窝数据" 
            
          android:summaryOn 
          = 
          "关闭蜂窝数据" 
            
          android:title 
          = 
          "蜂窝数据" 
            
          /> 
            
           
            
              
            android:key 
            = 
            "set_2g_net" 
              
            android:title 
            = 
            "蜂窝数据网络" 
              
            /> 
              
             
              
                
              android:key 
              = 
              "set_roving" 
                
              android:summary 
              = 
              "在境外时请关闭数据漫游" 
                
              android:title 
              = 
              "数据漫游" 
                
              /> 
                
               
                
               
                
                  
                android:key 
                = 
                "set_VPN_Category" 
                  
                android:title 
                = 
                "VPN设置" 
                  
                > 
                  
                 
                  
                    
                  android:key 
                  = 
                  "set_VPN" 
                    
                  android:title 
                  = 
                  "设置VPN" 
                    
                  /> 
                    
                   
                    
                   
                  
                
              
            
          
        
      
   

那么如果显示呢?然后我们创建一个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中的元素如下:

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177361.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:42
下一篇 2026年3月26日 下午7:42


相关推荐

  • n8n+mcp+deepseek完整的工作流教程,手把手教大家搭建mcp!

    n8n+mcp+deepseek完整的工作流教程,手把手教大家搭建mcp!

    2026年3月15日
    2
  • FindWindowEx使用方法「建议收藏」

    FindWindowEx使用方法「建议收藏」 功能:这个函数获取窗口句柄。类名和窗体名称和给定的字符串匹配形式。这个功能看起来子窗体,从在一个给定的子窗体子窗体回到下一个起始行。当寻找不大写和小写之间的区别。    函数原型:HWNDFindWindowEx(HWNDhwndParent,HWNDhwndChildAfter。LPCTSTRlpszClass,LPCTSTRlpszWindow);    參数:    hwnd…

    2022年5月6日
    65
  • left join 基本用法

    left join 基本用法废话不多说 来看例子一 建表 导入测试数据 createtablet aidVARCHAR2 5 notnull carVARCHAR2 10 notnull createtablet bidVARCHAR2 5 notnull usernameVARC

    2026年3月19日
    2
  • 接口测试抓包工具_接口测试请求头里面有哪些内容

    接口测试抓包工具_接口测试请求头里面有哪些内容1、Poster    Poster为Firefox浏览器的一个插件,主要用来模拟发并HTTP请求。随着Chrome浏览器的流行,它也出了chrome版本:ChromePoster  在Fiefox浏览器中的安装非常简单。首先,打开Fiefox浏览器,菜单栏“工具”–> “添加组件”,搜索“poster”,在搜索例表中点击“安装”,然后重启浏览器即可。  打开方法:菜

    2025年9月18日
    6
  • 数组和链表的区别,各有何优缺点

    数组和链表的区别,各有何优缺点链表与数组的区别(1)数组的元素个数是固定的,而组成链表的结点个数可按需要增减;(2)数组元素的存诸单元在数组定义时分配,链表结点的存储单元在程序执行时动态向系统申请;(3)数组中的元素顺序关系由元素在数组中的位置(即下标)确定,链表中的结点顺序关系由结点所包含的指针来体现。(4)对于不是固定长度的列表,用可能最大长度的数组来描述,会浪费许多内存空间。(5)对于元素的插人、删除操作非常频繁的列表处理场合,用数组表示是不适宜的。若用链表实现,会使程序结构清晰,处理的方法也较为简便。数组的优点随机

    2022年6月17日
    91
  • windows安装wget命令_wget怎么用

    windows安装wget命令_wget怎么用在linux操作系统中,我们会经常要用到wget下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性。在linux中使用wget时,若报-bash:wget:commandnotfound,则表明没有安装wget,需要安装,安装命令如下:yum-yinstallwget安装完成即可以使用。…

    2022年8月31日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号