Settings 设置
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中定义好:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="citys">
- <item>成都</item>
- <item>北京</item>
- <item>上海</item>
- </string-array>
- </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 设置相关推荐
- FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】
FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书,绑定TLS证书启用FTPS访问,还可以强制客户端使用FTPS加密协议访问FTP服务器禁止未加 ...
- Unreal Engin_画廊制作笔记 _012修改World Settings设置
012 修改World Settings设置 这节笔记主要是记录设置的数据. 直接上截图就好. http ...
- 三十七、细说Scrapy中的settings设置
@Author:Runsen 文章目录 爬虫项目结构 Scrapy默认设置 Scrapy深入下载中间件设置 导入配置from_crawler 代理设置 爬虫项目结构 建立完爬虫项目之后,都会有如下的结 ...
- vscode java settings设置_兼容vscode插件的主题服务
背景介绍 今年有幸参与了 IDE 共建项目组,负责主题服务的设计实现.说到主题服务,我们可能立马会想到 VSCODE 丰富的主题生态.VSCODE 有着庞大的插件市场,主题插件是其中非常重要的一部分. ...
- vscode java settings设置_vscode 搭建java环境
VsCode搭建Java开发环境 - 王旌羽 - 博客园www.cnblogs.com 1:在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X),输入关键词java. ...
- build gradle settings 设置、读取变量
需求 可以在 settings.gradle, build.gradle 文件中读取 根据变量 控制编译流程(用什么路径了) 1. 新建gradle文件 好处:settings.gradle.buil ...
- Elasticsearch——Settings设置
一.静态settings 只能在索引创建时或者在状态为 closed index(闭合的索引)上设置. 设置名 含义 index.number_of_shards 主分片数,默认为5.只能在创建索引时 ...
- Unity引擎的打包Player Settings设置介绍
一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company Name 公司名称 Product N ...
- IDEA settings设置快捷键实现字符串中的英文字母转大小写
问题现象: 如题,如何在IDEA的settings属性中,通过设置快捷键实现字符串中的英文字母转大小写? 问题分析: 简单说一下,为什么会有这样的想法! 使用过pg(postgresql)和Oracl ...
最新文章
- Makefile_06:如果引用其它的 Makefile
- 生活随笔[2005-06-06]
- 一致性哈希算法的基本原理
- IE浏览器与非IE浏览器JS日期兼容性问题处理
- 2016\Province_C_C++_C\1 报纸页数
- oracle中如何调用存储过程
- CF819E:Mister B and Flight to the Moon(构造、归纳法)
- android 贝塞尔曲线_OpenGL 实践之贝塞尔曲线绘制
- python/匿名函数和内置函数
- 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
- 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决
- plc计算机辅助编程设计方法,国产plc怎么编程
- 微博千万级规模高性能高并发的网络架构设计
- 获取TrustedInstaller权限(Grant TrustedInstaller Permission)
- 北师大 外国教育史-2(古罗马教育、中世纪教育)
- ctfshow萌新赛web
- 七个习惯让你免费学好英语
- 黑吃黑第一季/全集Banshee迅雷下载
- 11个你可能不知道的Python库
- matlab心线代码,matlab心形线
热门文章
- BDB(C) Getting Started - Introduction to Berkeley DB
- 里氏代换原则C#详解
- 计算机应用退修后多久知道结果,计算机核心论文投稿的一点碎碎念
- 模态分解算法 EMD、EEMD、CEEMD
- javax.net.ssl.SSLHandshakeException: No appropriate protocol
- PreTranslateMessage使用
- Linux 要不要防病毒软件或防火墙
- Rabbit的基本概念
- Windows系统中文版切换英文版教程
- 讨论IOS开发以及自己的经验