菜鸟Android4.0 Settings分析(一)
先声明:本人工作半年,是真的菜鸟,之前有做过2.3的Launcher,没有记录下来,感觉挺可惜的,现在老大叫我搞Setting,我觉得是得写得东西,记录下自己的工作。设备都还没到,现在只能看看代码,就先记录下看代码的收获吧。。
注意:Fragment是android3.0以上才支持的,3.0之前得导jar包,我在找Setting里面ListView的item的click事件时找了好久,因为之前关联的是2.3的源码,当我跳到PreferenceActivity类里面想看下Header类里,一直找不到(sb了),最后到官方的Reference上去找才想起来自己的源码关联的是2.3的(真的sb了...)。。。
Settings的包结构:
一、Setting的主界面
HEADER_TYPE_NORMAL代表一个常规项,像这个:
HEADER_TYPE_SWITCH代表一种开头形式的类型,像这个:
getView()方法中也是根据三种不同的类型,加载不同的view以及数据。
显示基本上就这样了,下面就是事件的响应了,点击一个item后的响应。查看一下PreferenceActivity的源码,可以看到PreferenceActivity重写了ListActivity的这个文法public void onHeaderClick(Header header, int position) {if (header.fragment != null) {if (mSinglePane) {int titleRes = header.breadCrumbTitleRes;int shortTitleRes = header.breadCrumbShortTitleRes;if (titleRes == 0) {titleRes = header.titleRes;shortTitleRes = 0;}startWithFragment(header.fragment, header.fragmentArguments,null, 0, titleRes, shortTitleRes);} else {switchToHeader(header);}} else if (header.intent != null) {startActivity(header.intent);}}
今天就到这里,明天继续。。。。