Android 实现下载时主界面与详细界面一致更新
16lz
2021-01-23
1、创建监听管理类
public class ObserverManager { private List observers = new ArrayList(); public interface Observer { public void update(); public void updateState(); } public void addObserver(Observer observer) { if (observer == null) { throw new RuntimeException(); } synchronized (this) { if (!observers.contains(observer)) { observers.add(observer); } } } public void notifyObservers() { for (Observer observer : observers) { observer.update(); } } public void notifyState() { for (Observer observer : observers) { observer.updateState(); } }}
2、创建详细界面
public class DetailView extends View implements Observer { public DetailView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public DetailView(Context context, AttributeSet attrs) { super(context, attrs); } public DetailView(Context context) { super(context); } @Override public void update() { System.out.println("update"); } @Override public void updateState() { System.out.println("updateState"); }}
3、创建主界面
1)在初始化时添加监听
mObserverManager.addObserver(new DetailView(this));
2)在主界面点击下载时通知详细界面更新
public class MainActivity extends Activity { private ObserverManager mObserverManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mObserverManager = new ObserverManager(); mObserverManager.addObserver(new DetailView(this)); } public void click(View v) { //TODO 比如开始下载 mObserverManager.notifyUpdate();// }}
更多相关文章
- android 程序初始化界面.. .
- Android中自定义Toast显示在其他界面上
- Android右滑返回上一个界面的实现方法
- Android 简单EventBus登录界面与传值(粘性事件)
- 打开app弹出欢迎界面,然后自动跳转到主界面
- [Android]判断当前界面是否是桌面
- Android studio跳转界面
- Android:程序跳过登录界面直接进入主界面(自动登录)
- 【Android】首次进入应用时加载引导界面