BaseActivity和BaseFragment模版

初学者肯定会遇到一个日常任务,那么就是findViewById,setOnClickListener(暂且把它们称为日常任务),而且很多人会把他们混在一起,导致项目结构混乱,最主要的是写多了会烦,不觉得吗?当项目的Activity越多时,每次添加控件都要重新写一次,想想都累

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

  • 定制解决的问题:尽量写少的代码,做更多事

  • 定制的目的:理清代码结构,让你编程更有逻辑性

  • 定制的内容:一切都是根据项目的需求去实现

 

2

定制BaseActivity

 

我们就针对日常任务简单的定制一份我们的BaseActivity

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

代码其实很简单,光从代码可能不知道这段代码的意思,那么就从实现这段代码来理解它的真正作用,下面是实现BaseActivity的代码

 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

 

 

是不是觉得代码结构很清晰,而且比起之前的日常任务来说,代码确实少了不少,各个方法都放着自己应该做的事情,这样能保证你在编程的时候逻辑不会出错,让别人读起来也很轻松

 

当然,除了常用的setOnClickListener还有setOnItemClickListener,这就需要根据项目需要而定制

 

如果你是很酷很有性格的人,那么也可以尝试下面这种用法,用一个字母作为方法,一切定制因你心情而定

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

3

定制BaseFragment

 

介绍完了Activity,那么Fragment就很简单了,可以模仿Activity实现,如果和上面的一模一样那么就没有乐趣了,这里由于个人项目原因,我把Fragment默认设置成了懒加载模式,并且只加载一次数据

 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

 

这里和Activity最大的区别

 

  1. convertView:由于Fragment的findID需要convertView,我们只好抽取出来

  2. setUserVisibleHint:这个方法当切换Fragment时会调用,会返回当前Fragment是否用户可见

 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

 

这里采用的是ViewPager+Fragment,如果需要让Fragment进行缓存,那么必须对ViewPager进行缓存设置

//设置缓存页面
viewPager.setOffscreenPageLimit(5);

下面是设置了缓存的懒加载模式的效果图,可以看到第一次切换需要加载数据,而第二次切回去则界面不会变化,效果和手机淘宝一样

 

0?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

 

4

定制BaseApplication

 

定制BaseApplication那就简单了,在Application中经常用到的就是第三方的设置、数据库的加载,具体可以根据项目需求进行定制

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

学习完之后,建议大家将BaseTemplate用到你们的项目中,当然从中也要学习抽象方法,抽取常用的方法,比如:在加载数据的时候可以抽取BaseController,在Adapter中可以抽取通用的BaseAdapter,具体还需要大家去研究.

转载于:https://my.oschina.net/carbenson/blog/870468

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值