[android] 通过比对进行容器联动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[android] 通过比对进行容器联动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1617字,纯文字阅读大概需要3分钟。
内容图文
![[android] 通过比对进行容器联动](/upload/InfoBanner/zyjiaocheng/1312/fd526ce926534884bf5e6517f0f4069d.jpg)
当中间容器变化之后,标题栏也要跟着变化
设计个比对依据:
抽象类BaseView中定义抽象方法,每个继承的View都必须实现,为自己的界面定义一个唯一的int常量,作为比对依据
降低容器之间的耦合度:
中间容器干了其他容器的活,耦合度很高,中间容器应该只需要去“通知”其他容器就可以了
使用观察者模式为中间容器变动增加监听,解决如果有多个关联容器的问题
观察者模式:
被观察的对象======>中间容器
观察者============>标题容器
被观察的对象{ List<观察者> lists; boolean isChange=false; setChange(){ isChange=true; } notify(){ for(观察者 item:lists){ item.update(); } } }
MainActivity.java
/** * 初始化主体 */ public void initMiddle() { mainContainer=(RelativeLayout) findViewById(R.id.il_main); MiddleManager.getInstance().setMainContainer(mainContainer); MiddleManager.getInstance().loadView(LoginView.class); //添加观察者 MiddleManager.getInstance().addObserver(TitleManager.getInstance()); }
MiddleManager.java
/** * 修改标题 */ public void changeTitle(){ setChanged(); notifyObservers(currentView.getID()); }
TitleManager.java
/** * 修改标题 */ @Override public void update(Observable observable, Object data) { if(data!=null && StringUtils.isNumeric(data.toString())){ switch (Integer.parseInt(data.toString())) { case ConstantValue.VIEW_INDEX: showLoginTitle(); break; case ConstantValue.VIEW_LOGIN: showUnloginTitle(); break; } } }
IndexView.java
/** * 返回id */ @Override public int getID() { return ConstantValue.VIEW_INDEX; }
ConstantValue.java
package com.tsh.lottery; /** * 常量类 * @author taoshihan * */ public class ConstantValue { public final static int VIEW_INDEX=1;//首页界面idpublicfinalstaticint VIEW_LOGIN=2;//登陆界面id }
1.中间容器变成被观察的对象,继承Observable
2.标题容器变成观察者,实现Observer接口
3.建立观察者和被观察者之间的关系,标题被增加到中间容器的数组里面
4.一旦中间容器变动,修改boolean值,然后通知所有的观察者.update()
原文:http://www.cnblogs.com/taoshihan/p/5626217.html
内容总结
以上是互联网集市为您收集整理的[android] 通过比对进行容器联动全部内容,希望文章能够帮你解决[android] 通过比对进行容器联动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。