Settings app简单学习记录

Settings是android系统设置的入口。主界面由Settings.java以及settings_headers.xml构成。

Settings类继承自PreferenceActivity,而PreferenceActivity又继承自ListActivity,ListActivity拥有ListView和ListAdapter类型的成员变量。

1,如何使用PreferenceActivity构建页面

使用addPreferencesFromIntent或者addPreferencesFromResource将定义了headers的内容(如果是从resource中加载,那么一般是放在xml文件夹下的文件)加载进PreferenceActivity。每一个定义的header就是ListView中的一行View,当然,显示出来的样式会不同,比如分类标题“无线和网络”和下面的“WLAN”其实都是一个header。

类似于ListView的使用,我们在ListAdapter的getView方法中,可以使用额外的布局文件,对每一行进行UI定制。比如wlan和bt有开关,那么就用layout下的perference_header_switch_item.xml来构建view。

在构造各种页面组件时用了系统内部属性,如holder.title =
(TextView)view.findViewById(com.android.internal.R.id.title);

每一个header对应一个fragment,在settings_headers.xml中使用标签指定,如android:fragment="com.android.settings.wifi.WifiSettings"

2,开关(switch)的处理

以WLAN开关举例,在Settings中会构建WifiEnabler的实例,将实例化的switch传给WifiEnabler,后续的开关状态维护,点击事件监听全都交给WifiEnabler来处理了。

3,设置值的存储

在Settings的OnCreate函数中,就出现了getSharedPreferences,所以设置的值将存储于“/data/data/com.android.settings/shared_prefs”下的com.android.settings_preferences.xml里。

Settings app简单学习记录,布布扣,bubuko.com

时间: 2024-10-11 07:31:06

Settings app简单学习记录的相关文章

寒假安卓app开发学习记录(2)

今天属实是头疼的一天.开始的时候是简单了解了一下安卓的系统架构,了解到大概分为四个部分. 然后看了两节创建安卓项目的课程,准备去实践一下的时候突然发现我的eclipse里竟然没有Android选项.查询了百度后发现是因为我先下载的ADT没有和eclipse关联.于是就安装ADT,安装的时候巨慢,等了十几分钟还没安好,才发现需要离线安装才行.这个问题解决了后又发现出现了一个错误,在网上查了半天,各种尝试,终于发现! 是因为勾选了最下面的那个Contact all 选项,只要把那个勾去掉就不会出现错

Linux命令行及Vim简单学习记录

Linux命令行 1.打开命令行 Ctrl+Alt+t 2.目录 显示当前目录的文件列表 ls 跳转至当前目录中的x文件夹 cd x 返回根目录 cd 3.文件 新建文件1.cpp touch ./1.cpp 用vim打开文件1.cpp vim ./1.cpp 用g++编译文件1.cpp g++ ./1.cpp (编译后生成文件名为"1.out"的可执行文件) 用g++将文件1.cpp编译为文件名为"1"的可执行文件 g++ ./1.cpp -o ./1 -g 在使

Linux awk工具简单学习记录

awk是一个文本分析工具,它把文件逐行读入,以特定符号将每行切分(默认空格为分隔符),切开的部分再进行各种分析处理. awk其名称得自于它的创始人Alfred Aho .Peter Weinberger 和Brian Kernighan 姓氏的首个字母. 事实上,awk有4个不同版本:awk.nawk和gawk,还有一个是mawk.gawk 是AWK的GNU版本,通常未作特别说明的awk一般指的是gawk.在RedHat系统中,默认是gawk,而在Ubuntu系统中,默认是mawk.如果需要使用

MyBatis 学习记录3 MapperMethod类

主题 之前学习了一下MapperProxy的生产过程,自定义Mapper类的对象是通过动态代理生产的,调用自定义方法的时候实际上是调用了MapperMethod的execute方法:mapperMethod.execute(sqlSession, args);所以想再简单学习记录下MapperMethod类 组成 从上图可知,MapperMethod只有2个成员域,都是静态内部类,所以 MapperMethod ≈ SqlCommand + MethodSignature SqlCommand

Google App Engine 学习和实践

这个周末玩了玩Google App Engine,随手写点东西,算是学习笔记吧.不当之处,请多多指正. 作者:liigo,2009/04/26夜,大连 原创链接:http://blog.csdn.net/liigo/archive/2009/04/26/4127055.aspx 转载请注明出处:http://blog.csdn.net/liigo 一,怎么想起来玩Google App Engine了呢? 近期想写一个小程序,以便在公司的电脑和家里的电脑之间随时共享数据.但是没有现成的server

ELK stack 学习记录

ELK日志分析平台学习记录 首先ELK主要指elasticsearch .logstash 和kibana,三个开源软件组合而成的一套日志平台解决方案.可以将平时收集到的日志,通过前台展示出来,并且可以加以分析,理论上可以解放劳动力(再也不用干上生产取日志这种活了--很搓). 最近在研究ELKstack日志分析平台,网上相关的中文资料不多.所以呢也就写了这篇文章将自己的一些学习认识总结记录下来,基本偏实战,概念理论较少,概念这块,我想以后可以再开一篇文章来做一个阐述总结. 这篇文章中会先讲一下搭

salt的api学习记录(一)

现在终于开始学习salt的api了,有些小激动啊,我们执行命令的时候,后台到底是如何处理的,发生什么了事情,我对着一切有着强烈的好奇心啊. 这些是saltstack命令对应的api: salt  --->salt.client.LocalClient  salt-cp  --->salt.cli.cp.SaltCP  salt-key --->salt.key.KeyCLI salt-call --->salt.cli.caller.caller salt-run --->s

UWP学习记录4-设计和UI之控件和模式1

UWP学习记录4-设计和UI之控件和模式1 1.控件和事件简介 在 UWP 应用开发中,控件是一种显示内容或支持交互的 UI 元素. 控件是用户界面的构建基块. 我们提供了超过 45 种控件供你使用,范围从简单按钮到网格视图之类的功能强大的数据控件. 模式是合并多个控件来创造新内容的一种方式. 应用添加控件实现UI,主要是三个步骤: A.将控件添加到你的应用 UI. B.设置控件的属性,如宽度.高度或前景色. C.将代码添加到控件的事件处理程序,从而使其执行一些任务. 添加应用一般通过: A.1

python scrapy简单爬虫记录(实现简单爬取知乎)

之前写了个scrapy的学习记录,只是简单的介绍了下scrapy的一些内容,并没有实际的例子,现在开始记录例子 使用的环境是python2.7, scrapy1.2.0 首先创建项目 在要建立项目的目录下执行命令scrapy startproject tutorial scrapy会帮你建立好项目,接着创建蜘蛛scrapy genspider zhuhuSpider zhihu.com 当前的文件结构是 --tutorial --spiders --__init__.py --zhihuSpid