Android监听——变量的变化

时间:2021-07-06 00:04:15

这是对上一篇的补充:

如何合理的监听程序中一个变量的变化。

有时候,我们在程序中会设定一个变量作为标志,而程序需要监听这个标志,当这个标志发生改变时,程序做出相应的处理。

主要的代码解释如下:

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);