Android編程實(shí)現(xiàn)下載時(shí)主界面與詳細(xì)界面一致更新的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)下載時(shí)主界面與詳細(xì)界面一致更新的方法。分享給大家供大家參考,具體如下:
1、創(chuàng)建監(jiān)聽管理類
public class ObserverManager {
private List<Observer> observers = new ArrayList<ObserverManager.Observer>();
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、創(chuàng)建詳細(xì)界面
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、創(chuàng)建主界面
1)在初始化時(shí)添加監(jiān)聽
mObserverManager.addObserver(new DetailView(this));
2)在主界面點(diǎn)擊下載時(shí)通知詳細(xì)界面更新
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();//
}
}
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android布局layout技巧總結(jié)》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android Retrofit2數(shù)據(jù)解析代碼解析
這篇文章主要介紹了Android Retrofit2數(shù)據(jù)解析代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Android中的動(dòng)態(tài)加載機(jī)制的學(xué)習(xí)研究
本篇文章主要介紹了Android中的動(dòng)態(tài)加載機(jī)制,對(duì)android項(xiàng)目開發(fā)有著一定的幫助,有興趣的同學(xué)可以了解一下。2016-11-11
Android中調(diào)用另一個(gè)Activity并返回結(jié)果(選擇頭像功能為例)
這篇文章主要介紹了Android中調(diào)用另一個(gè)Activity并返回結(jié)果,本文以模擬選擇頭像功能為例通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01
Android應(yīng)用啟動(dòng)另外一個(gè)apk應(yīng)用的方法
這篇文章主要介紹了Android應(yīng)用啟動(dòng)另外一個(gè)apk應(yīng)用的方法,涉及Android基于intent的package調(diào)用與管理技巧,需要的朋友可以參考下2016-02-02
Android中oncreate中獲得控件高度或?qū)挾鹊膶?shí)現(xiàn)方法
這篇文章主要介紹了Android中oncreate中獲得控件高度或?qū)挾鹊膶?shí)現(xiàn)方法的相關(guān)資料,希望通過本文大家能實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
Android操作存放在assets文件夾下SQLite數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Android操作存放在assets文件夾下SQLite數(shù)據(jù)庫(kù)的方法,實(shí)例分析了Android操作SQLite數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Android仿支付寶自定義密碼輸入框及安全鍵盤(密碼鍵盤)
這篇文章主要介紹了Android仿支付寶自定義密碼輸入框及安全鍵盤(密碼鍵盤),需要的朋友可以參考下2018-01-01

