上一篇讲到

Android SDK开发 -- TitleBar重构 (代理模式的使用)


然后补了一下代理设计模式。参考书籍《大话设计模式》


改善一下之前的代码设计。


先来定义一个接口

/** * AppTitle接口 *  * @author coffee 
* 2016-1-2 下午10:17:53 */public interface AppTitle {/** * 初始化Title view */public void initTitle();/** * 设置app的title * * @param leftTitle * @param middleTitle * @param rightTitle */public void setTitle(TitleRes leftTitle, TitleRes middleTitle, TitleRes rightTitle);}

接口的实现

public class TitleMgr implements AppTitle {

TitleMgr的实现参考上一篇文章


然后改善一下BaseActivity的类( 该类相当于AppTitle的代理类,TitleMgr是AppTitle的实现类)
public abstract class BaseActivity extends Activity implements Handler.Callback, AppTitle {private AppTitle appTitle; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  //....findViewById();} /** * 初始化title View */protected void findViewById() {initTitle();}@Overridepublic void initTitle() {appTitle = new TitleMgr(getContext(), findViewById(android.R.id.content));appTitle.initTitle();}/** * 设置app的title栏 *  * @param leftTitle * @param middleTitle * @param rightTitle */@Overridepublic void setTitle(TitleRes leftTitle, TitleRes middleTitle, TitleRes rightTitle) {appTitle.setTitle(leftTitle, middleTitle, rightTitle);}


BaseFragment的实现省略。。与Activity类似


至于为什么要定义一个接口AppTitle,而不是直接拿实现类TitleMgr来用。。

目前表示不是很理解。  网上所有的示例都采用接口来实现。。。。。。大概是为了统一代理类和实现类的操作吧。。




更多相关文章

  1. Android(安卓)回调机制
  2. android 自定义TextView实现秒级数字时钟
  3. android实现文件下载的几种方式
  4. Android(安卓)字体颜色渐变效果 Span实现
  5. android json相关
  6. android ndk 入门2 - 基本方法实现
  7. Android之OnGestureListener实现图片的左右滑动
  8. Android(安卓)实现 选择文件对话框
  9. Android(安卓)studio 学习3:实现倒计时、画板

随机推荐

  1. Android(安卓)studio中TextView改变字体
  2. Android(Java)加载SO文件
  3. android 图片压缩,bitmap压缩总结
  4. Android(安卓)淘宝APP 开发入门篇(一)
  5. [置顶] android人脸识别——HowOld测测你
  6. Android应用开发提高系列(1)――《Practica
  7. Android横屏开发的老梗---Fragment切换混
  8. 苹果发大招 Android用户轻松迁移ios
  9. android游戏开发适应多屏幕的问题 .
  10. Android之增长的数字(仿支付宝资产数字)