有时我们需要在一个类中使用另一个类的方法,并且又不希望把变量全部搞成全局的,那么这时候最简单的就是使用一个callback回调来实现。
步骤:
声明callback -》 声明接口 -》传递callback -》调用callback -》在调用处实现callback具体方法
首先,我们在需要调用方法的类中,写一个callback接口
private Callback callback; 声明
public interface Callback {
void click(View v);
}
这里实现的是一个点击事件叫click() 传递的是view
然后在实例化类的时候,将这个callback传进来
public MyAdapter(Callback callback) {this.callback = callback;}
接着,我们在需要使用该方法的时候,用callback代替
private class Click implements View.OnClickListener {
@Override
public void onClick(View view) {
callback.click(view);
}
}
这样就实现了在MyAdapter中使用其他类中的方法的条件。
最后,我们需要在调用MyAdapter的地方真正的实现这个类的具体方法。
MyAdapter.Callback mcallback = new MyAdapter.Callback() {
@Override
public void click(View v) {
//具体实现方法
}
};
实现以后将callback传入adapter即可