初学者肯定会遇到一个日常任务,那么就是findViewById,setOnClickListener(暂且把它们称为日常任务),而且很多人会把他们混在一起,导致项目结构混乱,最主要的是写多了会烦,不觉得吗?当项目的Activity越多时,每次添加控件都要重新写一次,想想都累
-
定制解决的问题:尽量写少的代码,做更多事
-
定制的目的:理清代码结构,让你编程更有逻辑性
-
定制的内容:一切都是根据项目的需求去实现
2
定制BaseActivity
我们就针对日常任务简单的定制一份我们的BaseActivity
代码其实很简单,光从代码可能不知道这段代码的意思,那么就从实现这段代码来理解它的真正作用,下面是实现BaseActivity的代码
是不是觉得代码结构很清晰,而且比起之前的日常任务来说,代码确实少了不少,各个方法都放着自己应该做的事情,这样能保证你在编程的时候逻辑不会出错,让别人读起来也很轻松
当然,除了常用的setOnClickListener还有setOnItemClickListener,这就需要根据项目需要而定制
如果你是很酷很有性格的人,那么也可以尝试下面这种用法,用一个字母作为方法,一切定制因你心情而定
3
定制BaseFragment
介绍完了Activity,那么Fragment就很简单了,可以模仿Activity实现,如果和上面的一模一样那么就没有乐趣了,这里由于个人项目原因,我把Fragment默认设置成了懒加载模式,并且只加载一次数据
这里和Activity最大的区别
-
convertView:由于Fragment的findID需要convertView,我们只好抽取出来
-
setUserVisibleHint:这个方法当切换Fragment时会调用,会返回当前Fragment是否用户可见
这里采用的是ViewPager+Fragment,如果需要让Fragment进行缓存,那么必须对ViewPager进行缓存设置
//设置缓存页面
viewPager.setOffscreenPageLimit(5);
下面是设置了缓存的懒加载模式的效果图,可以看到第一次切换需要加载数据,而第二次切回去则界面不会变化,效果和手机淘宝一样
4
定制BaseApplication
定制BaseApplication那就简单了,在Application中经常用到的就是第三方的设置、数据库的加载,具体可以根据项目需求进行定制
学习完之后,建议大家将BaseTemplate用到你们的项目中,当然从中也要学习抽象方法,抽取常用的方法,比如:在加载数据的时候可以抽取BaseController,在Adapter中可以抽取通用的BaseAdapter,具体还需要大家去研究.