zoukankan      html  css  js  c++  java
  • 使用观察者模式更新Fragment的内容

    最近有个需求,就是在Fragment没有切换的时候(show,hide)更新Fragment显示的内容,想了一会,终于想到可以用观察者模式来解决这个问题的。

    定义一个【被观察者(接口)】:

    public interface ISubject {
    
        void addObserver(PoemFragment obj);
    
        void deleteObserver(PoemFragment obj);
    
        void notifyObserver();
    }

     

    定义一个【观察者(接口)】:

    public interface IObserver {
        void update();
    }

     

    IndexActivityimplements ISubject,然后再IndexActivity中定义个集合保存Fragment:

     

     

    private List fragments = new ArrayList<>();

     

    IndexActivity实现了ISubject的3个方法:

    @Override
        public void addObserver(PoemFragment obj) {
            fragments.add(obj);
        }
    
        @Override
        public void deleteObserver(PoemFragment obj) {
            fragments.remove(obj);
        }
    
        @Override
        public void notifyObserver() {
              for (int i =0;i<fragments.size();i++){
                  fragments.get(i).update();
              }
        }

     

    接下来,让MyFragment implements IObserver,实现update方法,这个方法里面做fragment的更新操作

    indexActivivity中需要更新Fragment的地方,调用 notifyObserver() 就可以了,我在indexActivity中使用:

    if (myFragment.isAdded()){ 
        transaction.show(dynastyFragment); 
        notifyObserver();//通知Fragment更新 
    } else {
         transaction.add(R.id.framelayout,dynastyFragment); 
    }

     

    哈哈哈,大功告成了!!!其实很简单的

  • 相关阅读:
    PCB CE工具取Genesis JOB与STEP内存地址 方法分享
    PCB 720全景图嵌入登入界面应用实现
    PCB 录屏工具Screen2Exe GifCam ScreenToGif
    Centos部署hexo
    npm俩种换源方式
    腾讯云Centos下安装FastDFS
    远程连接docker容器里的MySQL出现2058
    CentOS7.6安装docker
    数据结构与算法(3)---链表
    java实现自定义图
  • 原文地址:https://www.cnblogs.com/IT-Goddess/p/7867348.html
Copyright © 2011-2022 走看看