[android] 通过比对进行容器联动

[android] 通过比对进行容器联动,第1张

概述当中间容器变化之后,标题栏也要跟着变化 设计个比对依据: 抽象类BaseView中定义抽象方法,每个继承的View都必须实现,为自己的界面定义一个唯一的int常量,作为比对依据 降低容器之间的耦合度:

当中间容器变化之后,标题栏也要跟着变化

 

设计个比对依据:

抽象类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

         * 修改标题      changeTitle(){        setChanged();        notifyObservers(currentVIEw.getID());    }

TitleManager.java

    */    @OverrIDe     update(Observable observable,Object data) {        if(data!=null && StringUtils.isNumeric(data.toString())){            switch (Integer.parseInt(data.toString())) {            case ConstantValue.VIEW_INDEX:                showLoginTitle();                break;             ConstantValue.VIEW_LOGIN:                showUnloginTitle();                ;            }        }    }

IndexVIEw.java

         * 返回ID     int getID() {        return ConstantValue.VIEW_INDEX;    }

ConstantValue.java

package com.tsh.lottery; * 常量类 * @author taoshihan * */ ConstantValue {    final static int VIEW_INDEX=1;首页界面ID    int VIEW_LOGIN=2;登陆界面ID}

 

 

1.中间容器变成被观察的对象,继承Observable

2.标题容器变成观察者,实现Observer接口

3.建立观察者和被观察者之间的关系,标题被增加到中间容器的数组里面

4.一旦中间容器变动,修改boolean值,然后通知所有的观察者.update()

 

总结

以上是内存溢出为你收集整理的[android] 通过比对进行容器联动全部内容,希望文章能够帮你解决[android] 通过比对进行容器联动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存