通过观察者在此activity中更新其他activity中的UI

来源:互联网 发布:天谕玉虚捏脸数据分享 编辑:程序博客网 时间:2024/06/11 19:47

首先创建一个管理类,来帮助发送

public class CollectManager {    public interface CollectManagerListener {        /**         * 是否收藏/取消收藏         */        public void onCollectUpdate();    }    private Context mContext;    private static CollectManager collectManager;    private WeakHashMap<CollectManagerListener, Void> listeners = new WeakHashMap<CollectManagerListener, Void>();    public static CollectManager getInstance() {        if (collectManager == null) {            collectManager = new CollectManager();        }        return collectManager;    }    /**     * 添加监听器     *     * @param listener     */    public void addListener(CollectManagerListener listener) {        listeners.put(listener, null);    }    /**     * 删除监听器     */    public void removeListener(CollectManagerListener listener) {        listeners.remove(listener);    }    public void onCollectUpdate() {        //通知监听者        for (CollectManagerListener aListener : new ArrayList<CollectManagerListener>(listeners.keySet())) {            aListener.onCollectUpdate();        }    }}

其中在实现更新UI的时候在被更新的Activity中调用此接口
实现添加监听的方法

 CollectManager.getInstance().addListener(this);

然后实现此接口中的一些方法

  @Override    public void onCollectUpdate() {        //在此写你要更新UI 的内容        //只能改变此界面的UI状态,不能传值更改        //只能在另个界面来改变此界面的UI不能传递数值    }

下面在想要更改的Activity中调用下面方法

DralayoutManager.getInstance().onDrawLayoutUpdate();

这样以来就能通过当前activity改变另个activity的UI界面了。

阅读全文
0 0
原创粉丝点击