Android接口回調(diào),見的最多的就是系統(tǒng)的點(diǎn)擊事件的回調(diào)方法:OnClick,使用方法如下。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
OnClickLister 是一個(gè)接口,OnClick 是回調(diào)方法。
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
所以在 Activity 里,服從這個(gè)接口,就可以換一種使用方式。
public class MainActivity extends AppCompatActivity implements View.OnClickListener
btn.setOnClickListener(this);
@Override
public void onClick(View v) {
}
知道了系統(tǒng)的接口回調(diào)的寫法,我們自己就可以自定義一個(gè)接口回調(diào)了。
舉個(gè)例子,計(jì)算兩個(gè)數(shù)的和,并通過回調(diào)方法打印出來。首先來自定義一個(gè)接口,回調(diào)方法將我們輸入的兩個(gè)數(shù),以及結(jié)果回調(diào)給我們。
public interface DoJob {
public void fillBack(int a, int b, int result);
}
接著定義一個(gè)計(jì)算類 Calculate,這個(gè)類的 add方法,實(shí)現(xiàn)兩個(gè)數(shù)相加,并把結(jié)果交給回調(diào)方法作為參數(shù)。
public class Calculate {
public void add(int a, int b, @Nullable DoJob customer) {
int result = a + b;
customer.fillBack(a, b, result);
}
}
現(xiàn)在,就可以在 Activity 里,實(shí)現(xiàn)這個(gè)加法回調(diào)了。
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);
}
完