Android设置Settings:预读取设置的选项和更新设置结果【2】

本文在文章1的基础上,增加预读取历史的修改、设置值更新到设置选项中,同时,每一次更新都会实时更新到设置栏中。
 res/xml目录下的preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ><PreferenceCategory android:title="【第1组】" ><ListPreferenceandroid:dialogTitle="list dialog title"android:entries="@array/citys"android:entryValues="@array/citys"android:key="list_key"android:summary="list summary"android:title="list title" /></PreferenceCategory><PreferenceCategory android:title="【第2组】" ><EditTextPreferenceandroid:defaultValue="缺省值1"android:key="edit_text_key_1"android:summary="edit summary"android:title="edit text 1" /><CheckBoxPreferenceandroid:defaultValue="true"android:key="checkbox_key"android:summary="checkbox summary"android:title="checkbox title" /></PreferenceCategory><!-- 点击将浏览和打开网页 --><Preferenceandroid:summary="http://blog.csdn.net/zhangphil"android:title="浏览网页" ><intentandroid:action="android.intent.action.VIEW"android:data="http://blog.csdn.net/zhangphil" /></Preference><!-- 此处将跳转到下一屏设置 --><PreferenceScreenandroid:key="preference_screen_2_key"android:persistent="false"android:title="PreferenceScreen 2" ><EditTextPreferenceandroid:defaultValue="缺省值2"android:key="edit_text_key_2"android:summary="edit summary"android:title="edit text 2" /></PreferenceScreen></PreferenceScreen>

需要的res/values/arrays.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="citys"><item>成都</item><item>北京</item><item>上海</item></string-array></resources>

上层Java代码:

package zhangphil.settings;import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;public class MainActivity extends PreferenceActivity {private MyOnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new MyOnSharedPreferenceChangeListener();private EditTextPreference mEditTextPreference;private final String A_KEY = "edit_text_key_1";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通用的读取设置的某个值的方法SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);String s = sharedPreferences.getString(A_KEY, "暂时为空");// 添加设置的选项addPreferencesFromResource(R.xml.preferences);// 预读取。为PreferenceActivity中的某个设置选项初始化值mEditTextPreference = (EditTextPreference) findPreference(A_KEY);mEditTextPreference.setSummary(s);// 注册添加设置的项数据发生变化时候的监听sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}@Overrideprotected void onResume() {super.onResume();getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}@Overrideprotected void onPause() {super.onPause();getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}private class MyOnSharedPreferenceChangeListener implements OnSharedPreferenceChangeListener {@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {if (key.equals(A_KEY)) {// 更新String s = sharedPreferences.getString(A_KEY, "NULL");mEditTextPreference.setSummary(s);}}}
}

相关文章和开发文档:
【1】《Android设置Settings实现:PreferenceActivity【1】》链接地址:http://blog.csdn.net/zhangphil/article/details/50154513
【2】Android谷歌官方Settings开发文档:http://developer.android.com/guide/topics/ui/settings.html



Android设置Settings:预读取设置的选项和更新设置结果【2】相关推荐

  1. 华为手机老是android自动升级,安卓手机系统升级!华为手机系统更新设置

    原标题:安卓手机系统升级!华为手机系统更新设置 安卓手机系统升级!华为手机系统更新设置?手机系统是手机使用的生命,而随时对手机系统进行更新就保障手机的运行.手机系统升级,可以修复手机之前的漏洞Bug, ...

  2. Android的camerax预览拍照

    前面讲了,camera1和camera2的简单使用.从前文可以看出来,API 的调用还是比较繁琐的,而且像一些最佳尺寸,角度等还得自己算.由于camera1支持的特性很少,camera2流程又很繁琐, ...

  3. 计算机自带游戏怎么调,一般游戏的模式-怎样设置游戏的窗口模式啊游戏在窗口模式下运行是怎么设置电脑的分辨率的啊?还有其他什么设置吗?具体点.谢谢,满分送上!!! 爱问知识人...

    2006-11-18 17:09:07 ALT+回车,分给我 全部 2006-11-18 17:09:07 2006-11-17 18:24:02 你最好先把自己电脑的显示模式设置为16 颜色设置在桌 ...

  4. html怎么设置外面有线,两个路由器有线连接怎么设置?

    在本文中,鸿哥主要给大家介绍,两个路由器有线连接的设置方法: 也就是用网线,把两个路由器连接起来,经过相关设置后,两个路由器都能够上网的方法. 两个路由器连接上网的设置方法,其实有2种: 无线连接 有 ...

  5. 罗永浩宣布进军电商直播;微博回应用户数据泄露;Android 11 开发者预览版 2 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦, ...

  6. 【Android RTMP】Android Camera 视频数据采集预览 ( 视频采集相关概念 | 摄像头预览参数设置 | 摄像头预览数据回调接口 )

    文章目录 安卓直播推流专栏博客总结 一. Android 端数据采集涉及到的相关概念 二. Camera 预览图像尺寸设置 三. 获取摄像头采集的数据格式 安卓直播推流专栏博客总结 Android R ...

  7. android 5.0 设置铃声,android5.0联系人铃声设置和来电读取分析

    android5.0联系人铃声设置和来电读取 一,单个联系人的铃声设置流程 1,联系人编辑界面下菜单设置来电铃声,会弹出一个ringtone列表供用户选择. 从ContactEditorFragmen ...

  8. android切环境插件,Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量...

    Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量 我更新了Android Studio 2.0版并正常使用. 当我今天创 ...

  9. iOS开发之iOS程序偏好设置(Settings Bundle)的使用

    2019独角兽企业重金招聘Python工程师标准>>> 在Android手机上, 在某个程序里,通过按Menu键,一般都会打开这个程序的设置,而在iOS里,系统提供了一个很好的保存程 ...

最新文章

  1. #1130 - Host 'localhost' is not allowed to connect to this MySQL server
  2. Multi-thread提高C++性能的编程技术笔记:单线程内存池+测试代码
  3. 2020 OPPO 开发者大会重磅推出 ColorOS 11,适配机型达 33 种
  4. 计算机复试考研专业课,2018计算机考研专业课复试复习攻略
  5. Android APK系列3-------使用platform密钥来给apk文件签名
  6. Android入门项目(校园软件)
  7. 论文 | 深度学习股票预测
  8. c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...
  9. 用HTML+CSS+JS做一个漂亮的个人网页
  10. 关于unity场景切换后模型变黑问题
  11. 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根
  12. java字符串--数组(相互转化)
  13. 华二紫竹2021年高考成绩查询,2019年华二紫竹升学数据分析!
  14. 钱币兑换问题c语言编程,HDU 1284 钱币兑换问题
  15. s-video接口_S-Video电缆会导致癌症吗?
  16. RFID卡的实现流程
  17. 基于RV1126 Video分析-----sensor模块所代表的subdev子设备注册
  18. 联想开天s620z改win7和Linux,联想台式机10代cpu改win7系统步骤
  19. deletepod = restart pod?
  20. 论vue3.0和vue2.0区别之编程方式及例子详解

热门文章

  1. F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
  2. iptables防火墙的连接状态
  3. hibernate+mysql时,会出现事物不管用
  4. Duplicate property mapping of xxx found in xx 嵌套异常,重复的属性在映射中发现。
  5. Ubuntu16 安装Jira
  6. 欧拉路径 之 poj 2513 Colored Sticks
  7. 5大食物千万别挑太艳的
  8. T端音乐盒子-NPC脚本
  9. ASP隐藏文件地址,并在下载时替换文件名
  10. Jscript 内部对象