Android接口回调,见的最多的就是系统的点击事件的回调方法:OnClick,使用方法如下。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
OnClickLister 是一个接口,OnClick 是回调方法。
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
所以在 Activity 里,服从这个接口,就可以换一种使用方式。
public class MainActivity extends AppCompatActivity implements View.OnClickListener
btn.setOnClickListener(this);
@Override
public void onClick(View v) {
}
知道了系统的接口回调的写法,我们自己就可以自定义一个接口回调了。
举个例子,计算两个数的和,并通过回调方法打印出来。首先来自定义一个接口,回调方法将我们输入的两个数,以及结果回调给我们。
public interface DoJob {
public void fillBack(int a, int b, int result);
}
接着定义一个计算类 Calculate,这个类的 add方法,实现两个数相加,并把结果交给回调方法作为参数。
public class Calculate {
public void add(int a, int b, @Nullable DoJob customer) {
int result = a + b;
customer.fillBack(a, b, result);
}
}
现在,就可以在 Activity 里,实现这个加法回调了。
Calculate c = new Calculate();
c.add(5, 10, new DoJob() {
@Override
public void fillBack(int a, int b, int result) {
System.out.println(a + " + " + b + " = " + result);
}
});
或
public class MainActivity extends AppCompatActivity implements DoJob
c.add(5, 10, this);
@Override
public void fillBack(int a, int b, int result) {
Log.i("", "fillBack: " + a + " + " + b + " = " + result);
}
完