Android设置Settings实现

PreferenceActivity需要从res/xml加载(addPreferencesFromResource)一个定义好的Preference的xml文件。比如preferences.xml:

<?xml version="1.0" encoding="UTF-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ><PreferenceCategory android:title="第一组"><ListPreference android:dialogTitle="list dialog Title"android:entries="@array/citys"android:entryValues="@array/citys"android:key="list_key"android:summary="list 的说明"android:title="是什么 title"/> </PreferenceCategory><PreferenceCategory android:title="第二组"><EditTextPreference android:defaultValue="缺省值1"android:key="edit_text_key_1"android:summary="edit 的说明"android:title="写什么  text 1"/><CheckBoxPreference android:defaultValue="true"android:key="checkbox_key"android:summary="checkbox summary"android:title="checkbox title"/></PreferenceCategory><!-- 点击将浏览和打开网页 --><Preference android:summary="http://blog.csdn.net/Rokends"android:title="打开链接"><intent  android:action="android.intent.action.VIEW"  android:data="http://blog.csdn.net/Rokends" />  </Preference><SwitchPreferenceandroid:key="open_key"android:summary="1314520"android:title="Wifi" /><!-- 此处将跳转到下一屏设置 --><PreferenceScreen android:key="preference_screen_key_2"android:persistent="false"android:title="跳转到下页 "><EditTextPreference android:defaultValue="缺省值2"  android:key="edit_text_key_2"  android:summary="edit 的说明"  android:title="edit text 2" /></PreferenceScreen></PreferenceScreen>

其中需要的数组资源citys在res/values中的arrays.xml中定义好:

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="citys">
  4. <item>成都</item>
  5. <item>北京</item>
  6. <item>上海</item>
  7. </string-array>
  8. </resources>

主要代码:

package com.example.settings;import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.Toast;public class MainActivity extends PreferenceActivity {private MyOnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new MyOnSharedPreferenceChangeListener();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main);// 通用的读取设置某个值的方法SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);String s = sharedPreferences.getString("edit_text_key_1", "暂时为空");Log.d("edit_text_key_1", s);// 添加设置选项addPreferencesFromResource(R.xml.preferences);// 注册添加设置的项数据发生变化时候的监听sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}@Overrideprotected void onPause() {super.onPause();getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}@Overrideprotected void onResume() {super.onResume();getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);}private class MyOnSharedPreferenceChangeListener implementsOnSharedPreferenceChangeListener {@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {Toast.makeText(getApplication(), key, Toast.LENGTH_SHORT).show();}}
}

运行效果:

Settings 设置相关推荐

  1. FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】

    FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书,绑定TLS证书启用FTPS访问,还可以强制客户端使用FTPS加密协议访问FTP服务器禁止未加 ...

  2. Unreal Engin_画廊制作笔记 _012修改World Settings设置

                                                    012 修改World Settings设置 这节笔记主要是记录设置的数据. 直接上截图就好. http ...

  3. 三十七、细说Scrapy中的settings设置

    @Author:Runsen 文章目录 爬虫项目结构 Scrapy默认设置 Scrapy深入下载中间件设置 导入配置from_crawler 代理设置 爬虫项目结构 建立完爬虫项目之后,都会有如下的结 ...

  4. vscode java settings设置_兼容vscode插件的主题服务

    背景介绍 今年有幸参与了 IDE 共建项目组,负责主题服务的设计实现.说到主题服务,我们可能立马会想到 VSCODE 丰富的主题生态.VSCODE 有着庞大的插件市场,主题插件是其中非常重要的一部分. ...

  5. vscode java settings设置_vscode 搭建java环境

    VsCode搭建Java开发环境 - 王旌羽 - 博客园​www.cnblogs.com 1:在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X),输入关键词java. ...

  6. build gradle settings 设置、读取变量

    需求 可以在 settings.gradle, build.gradle 文件中读取 根据变量 控制编译流程(用什么路径了) 1. 新建gradle文件 好处:settings.gradle.buil ...

  7. Elasticsearch——Settings设置

    一.静态settings 只能在索引创建时或者在状态为 closed index(闭合的索引)上设置. 设置名 含义 index.number_of_shards 主分片数,默认为5.只能在创建索引时 ...

  8. Unity引擎的打包Player Settings设置介绍

    一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company Name 公司名称 Product N ...

  9. IDEA settings设置快捷键实现字符串中的英文字母转大小写

    问题现象: 如题,如何在IDEA的settings属性中,通过设置快捷键实现字符串中的英文字母转大小写? 问题分析: 简单说一下,为什么会有这样的想法! 使用过pg(postgresql)和Oracl ...

最新文章

  1. Makefile_06:如果引用其它的 Makefile
  2. 生活随笔[2005-06-06]
  3. 一致性哈希算法的基本原理
  4. IE浏览器与非IE浏览器JS日期兼容性问题处理
  5. 2016\Province_C_C++_C\1 报纸页数
  6. oracle中如何调用存储过程
  7. CF819E:Mister B and Flight to the Moon(构造、归纳法)
  8. android 贝塞尔曲线_OpenGL 实践之贝塞尔曲线绘制
  9. python/匿名函数和内置函数
  10. 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
  11. 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决
  12. plc计算机辅助编程设计方法,国产plc怎么编程
  13. 微博千万级规模高性能高并发的网络架构设计
  14. 获取TrustedInstaller权限(Grant TrustedInstaller Permission)
  15. 北师大 外国教育史-2(古罗马教育、中世纪教育)
  16. ctfshow萌新赛web
  17. 七个习惯让你免费学好英语
  18. 黑吃黑第一季/全集Banshee迅雷下载
  19. 11个你可能不知道的Python库
  20. matlab心线代码,matlab心形线

热门文章

  1. BDB(C) Getting Started - Introduction to Berkeley DB
  2. 里氏代换原则C#详解
  3. 计算机应用退修后多久知道结果,计算机核心论文投稿的一点碎碎念
  4. 模态分解算法 EMD、EEMD、CEEMD
  5. javax.net.ssl.SSLHandshakeException: No appropriate protocol
  6. PreTranslateMessage使用
  7. Linux 要不要防病毒软件或防火墙
  8. Rabbit的基本概念
  9. Windows系统中文版切换英文版教程
  10. 讨论IOS开发以及自己的经验