回调的简单demo
简述
A类让"有能力"的B类去完成某些事情, A类只负责命令, B类负责具体实施.
实现
- 需要返回值的类创建接口
public class A{
//1. 创建接口
public interface Callback{
boolean doSomething();
}
//2. 创建接口实例
private Callback mCallback;
//3. 给接口实例赋值的方法
public void setCallback(Callback callback){
this.mCallback = callback;
}
//4. 正常使用接口的回调值的地方
public void execute(){
Log.i(tag, mCallback.doSomething()+"");
}
}
- 返回数值的类.
创建需要值的类, 并实现接口, 重写接口方法.
public class B extends AppCompatActivity implements A.Callback {
//1. 创建A的实例
private A mA;
//2. 实现A里的接口
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
A mA = new A();
//3. B发起回调, 通过A的实例
mA.setCallback(this);
}
//4. 实现接口 & 重写方法
@Override
public boolean doSomething() {
return false;
}
}