首先让大家看图  看到这张图是 不是很熟悉 我想大家应该会好奇他是怎么实现  咋一看是不是觉得实现起来有点困难 因为各个按钮之间会绑定牵连在一起
原来android内部提供更容易的实现他的方法
也就是preferenceActivity该类封装了sharedpreferences所以他的所有子类都具有保存key-value对的能力

比较常用的设置项 有三类:

1、checkboxpreferences

2、edittextpreferences

3、listviewpreferences

好了 直接看列子吧

分2步:

1、在res目录下建一个xml目录  并在该目录下新建一个preferences_setting.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ><PreferenceCategory android:title="我的位置源" ><CheckBoxPreferenceandroid:key="wireless_network"android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"android:title="使用无线网络" /><CheckBoxPreferenceandroid:key="gps_satellite_setting"android:summary="定位时,精确到街道级别(取消选择可节约电量)"android:title="启用GPS卫星设置" /></PreferenceCategory><PreferenceCategory android:title="个人信息设置" ><CheckBoxPreferenceandroid:key="yesno_save_individual_info"android:title="是否保存个人信息" /><EditTextPreferenceandroid:key="individual_name"android:summary="请输入真实姓名"android:title="姓名" /><PreferenceScreenandroid:key="other_individual_msg"android:summary="是否工作、手机"android:title="其他个人信息" ><CheckBoxPreferenceandroid:key="is_an_employee"android:title="是否工作" /><EditTextPreferenceandroid:key="mobile"android:summary="请输入真实的手机号"android:title="手机" /></PreferenceScreen></PreferenceCategory></PreferenceScreen>

2 、java文件:

package net.blogjava.mobile;import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceChangeListener;public class Main extends PreferenceActivity implementsOnPreferenceChangeListener
{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);getPreferenceManager().setSharedPreferencesName("setting");addPreferencesFromResource(R.xml.preference_setting);Preference individualNamePreference = findPreference("individual_name");SharedPreferences sharedPreferences= individualNamePreference.getSharedPreferences();individualNamePreference.setSummary(sharedPreferences.getString("individual_name", ""));if (sharedPreferences.getBoolean("yesno_save_individual_info", false))individualNamePreference.setEnabled(true);elseindividualNamePreference.setEnabled(false);individualNamePreference.setOnPreferenceChangeListener(this);}public boolean onPreferenceChange(Preference preference, Object newValue){preference.setSummary(String.valueOf(newValue));                return true;}@Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,Preference preference){if ("yesno_save_individual_info".equals(preference.getKey())){findPreference("individual_name").setEnabled(!findPreference("individual_name").isEnabled());}return super.onPreferenceTreeClick(preferenceScreen, preference);}
}

转载于:https://www.cnblogs.com/nuliniaoboke/archive/2013/01/29/2881366.html

android preferenceActivity的用法相关推荐

  1. Android之Adapter用法总结

    本文转自http://kb.cnblogs.com/a/2328334/,转载请注明原出处. Android之Adapter用法总结 作者:Devin Zhang  来源:博客园  发布时间:2012 ...

  2. Android的Adapter用法总结

    Android之Adapter用法总结 1.Adapter概念   定义为将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.   在androi ...

  3. android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...

    Android  PreferenceActivity与PreferenceFragment 前言 转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一 ...

  4. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  5. android PreferenceActivity详解

    原帖地址:http://gundumw100.iteye.com/blog/904097 为了引入这个概率 首先从需求说起 即:现有某Activity专门用于手机属性设置 那么应该如何做呢? 根据已学 ...

  6. android room表关联,Android Room的用法

    Android Room的用法 SQLite是Android内置的轻量级关系型数据库,但直接使用SQLite core包做数据库操作有以下劣势:需要编写长且重复的代码,这会很耗时且容易出错. 管理SQ ...

  7. android图片显示组件,Android可循环显示图像的Android Gallery组件用法实例

    本文实例分析了Android可循环显示图像的Android Gallery组件用法.分享给大家供大家参考,具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能 ...

  8. Android RxJava 基本用法

    Android RxJava 基本用法 RxJava 使用函数响应式编程方式,它可以简化项目,处理嵌套回调的异步事件. RxJava 依赖 这里以 RxJava 2.2.1 为例.在 build.gr ...

  9. Android中富文本用法包括点击事件处理

    Android中富文本用法包括点击事件处理 关于 只需要富文本展示效果,不需要点击事件 展示富文本加点击事件 关于   最近项目需要中需要用到富文本展示及富文本点击功能,先去百度了一下,大多数的说法是 ...

最新文章

  1. 横向ListView(一) ——开篇,基础逻辑实现
  2. PHP设计模式之组合模式(Composite Pattern)
  3. ansible-playbook-常用
  4. .NET MessageBox 网页弹出消息框
  5. 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里
  6. 前端学习01-04格式标签
  7. 地球环绕 html5,玩转html5(五)---月球绕着地球转,地球绕着太阳转
  8. 检索数据_4_从表中查询部分列
  9. 二叉树的建立及递归遍历
  10. java url utf 8_java中文乱码解决之道(八)—–解决URL中文乱码问题
  11. vue 导入excel解析_VUE中导入excel文件
  12. 高等组合学笔记(五): 加括号问题,集合的分类问题,多项式恒等式的组合证明
  13. Linux curl命令使用代理、以及代理种类介绍(附:curl命令详解)
  14. LeetCode Length of Longest Fibonacci Subsequence
  15. 第三期 预测——2.输入和输出
  16. 关于解决Windows server系统用户无法远程的问题
  17. Atitit.iso格式蓝光 BDMV 结构说明
  18. OMNETPP: tictoc
  19. 菜鸟程序员成长之路(七)——2020年,你奋斗了吗?
  20. 计算机毕业设计JAVA电影推荐网站mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. webstorm使用插件 statistic 统计代码
  2. nohup命令导致nohup.out文件过大处理办法
  3. 开发健康状态监控接口
  4. 图像检索:一维直方图+欧几里得距离+flann+KNN
  5. centos7 安装及配置
  6. android下测试方法及junit单元测试框架配置方法
  7. 点击按钮抓不到页面的参数
  8. 为小本打造简洁实用的开始菜单
  9. python 如何定义一个变量为数字_python – 如何在Pandas / Numpy中确定列/变量是否为数字?...
  10. FreeRTOS内核实现03:临界段的保护