1. 程式人生 > >Android監聽——變數的變化

Android監聽——變數的變化

這是對上一篇的補充:

如何合理的監聽程式中一個變數的變化。

有時候,我們在程式中會設定一個變數作為標誌,而程式需要監聽這個標誌,當這個標誌發生改變時,程式做出相應的處理。

主要的程式碼解釋如下:

1、將變數放置在一個類中,在該類中對變數有get 、set方法,並在set方法中做回撥。

2、在這裡,我們還提供一個方法供程式傳入監聽介面。

3、將類的引用作為單例,便於後續設定監聽位置。

package com.example.broadcastwithobserver;


public class Var {

	private BroadListener broadListener;
	private  int var;
        private static Var varInstance;
	private Var(){
		
	}
	public static Var getInstance(){
		if(null==varInstance)
		{
			varInstance=new Var();
		}
		return varInstance;
	}
	
	public void setBroadListener(BroadListener broadListener){
		this.broadListener=broadListener;
	}
	/**
	 * @return the var
	 */
	public int getVar() {
		return var;
	}

	/**
	 * @param var the var to set
	 */
	public void setVar(int var) {
		this.var = var;
		if(null!=broadListener){
			if(var==1){
			 broadListener.onSuccess();
			}
			else {
				broadListener.onFail("收到失敗回覆");
			}
		}
	}
	
}

使用監聽方式如下:
Var.getInstance().setBroadListener(new BroadListener() {
					
					@Override
					public void onSuccess() {
						// TODO Auto-generated method stub
						Toast.makeText(MainActivity.this, "監聽器接收到廣播了!!!", 0).show();
					}
					
					@Override
					public void onFail(String msg) {
						// TODO Auto-generated method stub
						Toast.makeText(MainActivity.this,msg, 0).show();
					}
				});

當我們做如下操作時,監聽就起效,做出回調了:
 Var.getInstance().setVar(0);