首先创建一个管理类,来帮助发送
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界面了。