Android接口回调

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

推荐阅读更多精彩内容