Android保存设置的PreferenceActivity
界面XML文件:preference_setting.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory android:title="我的位置源">
- <CheckBoxPreference
- android:key="my_wireless_network"
- android:title="使用无线电"
- android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"
- />
- <CheckBoxPreference
- android:key="my_gps_satellite_setting"
- android:title="启用GPS卫星设置"
- android:summary="定位时,精确到街道级别(取消选择可节约电量)"
- />
- </PreferenceCategory>
- <PreferenceCategory android:title="个人信息设置">
- <CheckBoxPreference
- android:key="my_yesno_save_individual_info"
- android:title="是否保存个人信息"
- />
- <EditTextPreference
- android:key="my_individual_name"
- android:title="姓名"
- android:summary="请输入真实姓名"
- />
- <PreferenceScreen
- android:key="my_other_individual_msg"
- android:title="其他个人信息"
- android:summary="是否工作、手机">
- <CheckBoxPreference
- android:key="my_is_an_employee"
- android:title="是否工作"
- />
- <EditTextPreference
- android:key="my_mobile"
- android:title="手机"
- android:summary="请输入您的手机号码"
- />
- </PreferenceScreen>
- </PreferenceCategory>
- </PreferenceScreen>
<?xml version="1.0" encoding="UTF-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="我的位置源"> <CheckBoxPreference android:key="my_wireless_network" android:title="使用无线电" android:summary="使用无线网络查看应用程序(例如Google地图)中的位置" /> <CheckBoxPreference android:key="my_gps_satellite_setting" android:title="启用GPS卫星设置" android:summary="定位时,精确到街道级别(取消选择可节约电量)" /> </PreferenceCategory> <PreferenceCategory android:title="个人信息设置"> <CheckBoxPreference android:key="my_yesno_save_individual_info" android:title="是否保存个人信息" /> <EditTextPreference android:key="my_individual_name" android:title="姓名" android:summary="请输入真实姓名" /> <PreferenceScreen android:key="my_other_individual_msg" android:title="其他个人信息" android:summary="是否工作、手机"> <CheckBoxPreference android:key="my_is_an_employee" android:title="是否工作" /> <EditTextPreference android:key="my_mobile" android:title="手机" android:summary="请输入您的手机号码" /> </PreferenceScreen> </PreferenceCategory> </PreferenceScreen>
PreferenceActivity 的类文件:
- package com.icitylife.preference;
- 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 implements OnPreferenceChangeListener {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //设置PreferenceActivity保存数据使用的XML文件的名称
- getPreferenceManager().setSharedPreferencesName("mySetting");
- //加载XML资源文件:此处就不能使用Activity的setContentView()
- addPreferencesFromResource(R.xml.preference_setting);
- //获取【姓名】设置项对应的Preference对象
- Preference individualNamePreference=findPreference("my_individual_name");
- //获得指向mySetting.xml文件的SharedPreference对象
- SharedPreferences sharedPreferences=individualNamePreference.getSharedPreferences();
- //设置【姓名】设置项的summary
- individualNamePreference.setSummary(sharedPreferences.getString("my_individual_name",""));
- //判断【是否保存个人信息】设置项是否被选中
- if(sharedPreferences.getBoolean("my_yesno_save_individual_info",false)){
- individualNamePreference.setEnabled(true);
- }else{
- individualNamePreference.setEnabled(false);
- }
- individualNamePreference.setOnPreferenceChangeListener(this);
- //获得【电话号码】设置项对应的Preference对象
- Preference mobileNamePreference=findPreference("my_mobile");
- SharedPreferences mobileSharedPreferences=mobileNamePreference.getSharedPreferences();
- //设置【电话号码】的summary
- mobileNamePreference.setSummary(mobileSharedPreferences.getString("my_mobile",""));
- mobileNamePreference.setOnPreferenceChangeListener(this);
- }
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- preference.setSummary(String.valueOf(newValue));
- return true;
- }
- /**
- * 处理【是否保存个人信息】的改变事件
- */
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference){
- if("my_yesno_save_individual_info".equals(preference.getKey())){
- findPreference("my_individual_name").setEnabled(!findPreference("my_individual_name").isEnabled());
- }
- return super.onPreferenceTreeClick(preferenceScreen, preference);
- }
- }
Android保存设置的PreferenceActivity相关推荐
- Android中Preference,preferenceActivity,PreferenceFragment等的使用
本文转自android 官方翻译过来的文本: 这里的话,只谈几个需要注意的问题: (1)这篇文章中也谈到的: 您必须将 XML 文件保存在 res/xml/ 目录中.尽管您可以随意命名该文件,但它通常 ...
- android学习日记——PreferenceActivity详解
PreferenceActivity详解 何为PreferenceActivity 以下为官方解释: This is the base class for anactivity to show a h ...
- android preference 启动activity,Android PreferenceActivity 学习笔记
在Ap中有时需要设置一些配置参数,这些参数通过配置文件保存. 为了设置这些参数,需要提供一个UI,针对这种需求,Android提供了preferenceActivity. PreferenceActi ...
- Android框架攻击之Fragment注入
为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的.关于Fragment的使用说明,可以阅读& ...
- [免费专栏] Android安全之Android Fragment注入
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- Fragment Injection漏洞杂谈
路人甲 · 2015/08/21 10:23 0x00 背景 13年的时候,IBM的安全研究人员发现了1个Google框架层的漏洞Fragment注入漏洞,该漏洞可以导致Android手机的PIN码被 ...
- Android实战技巧之六:PreferenceActivity使用详解
一.写作前面 当我们做应用的时候,需要用户配置一些信息,而这就是通常所说的应用设置. 对于Android系统来说,系统本身的设置带来的用户体验和习惯已经深入人心,在我们的应用中同样用到类似的设置页, ...
- android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...
Android PreferenceActivity与PreferenceFragment 前言 转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一 ...
- Android开发--详解SharedPreference/PreferenceActivity
我们经常看到应用程序的设置页面,一般用到设置页面时,我们会继承自PreferenceActivity,它实现了SharedPreference,并生成相应的XML文件自动保存用户的设置,在设置页面中, ...
最新文章
- java script 月日年转年月日_js的如何进行日期格式转换成年月日
- LeetCode Implement strStr(kmp或者BM)
- leetcode算法题--下降路径最小和
- socket未读消息 如何设计_如何设计IM系统的消息架构?
- 计算机地址永无符号数表示,计算机如何区分 有符号 无符号数的区别???
- iOS Airplay Screen Mirroring 同屏技术详解
- [Java 基础]接口
- 计算机教师教学心得体会,信息技术教师教学的一点体会
- HTML颜色代码表/颜色名(网摘)
- python3 一年中的天数 时间转化为北京时_Python3?环境搭建
- java 固定值_这些频繁调用函数是否可以在dblquad中返回固定值?
- Android NDK开发:打包so库及jar包供他人使用
- axios 请求接口获取文件流数据导出数据到excel,解决乱码
- 用74l138实现一个一位全减器_用react实现一个仿ionic button组件
- vmware workstation 12 永久激活码
- cmd修改计算机睡眠、休眠时间,批量命令
- 云运维拓扑图_云运维的核心是什么?
- 键盘上F1~F12各个功能键的作用
- 使用网络唤醒功能实现远程开机 —— 定时执行专家
- 怎么退出自适应巡航_自适应巡航功能是何方神圣?“全速域自适应巡航”又有什么作用呢...
热门文章
- React-router总结
- 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
- Java生鲜电商平台-缓存架构实战
- channels2.X 学习笔记
- 本地存储cookie和localStorage区别特点
- 微信开放平台全网发布时,检测失败 —— C#
- 要的需求 ip提取网站源码带采集 要求是PHP源码
- WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]
- TCP/IP(四):TCP 与 UDP 协议简介
- element组件库中table自定义分页效果