Callback 回调函数的基本写法

Posted by Kosmos on December 3, 2015

比如说这是一个用于监听Duang的监听器, 当Duang时,会回调Duang的duang方法

1:先写一个接口

里面包含duang改变的抽象方法

    public interface OnDuangDuangListener{
    	void duang(int duang);
    }

2. 创建一个该接口的成员对象

(因为该对象可能会在这个类的不同方法内部调用,所以创建成员的)

    private OnDuangDuangListener listener;

3. 对外提供一个public方法

因为此时,listener还是一个空对象,对外提供一个public方法,对该对象进行赋值

    public void setOnDuangListener(OnDuangDuangListener listener){
    	this.listener = listener;
    }

4.举个栗子

监听触摸事件(onTouchEvent)的回调

  • 1.会先判断OnDuangDuangListener对象是否为空,
  • 2.不为空时,调用listener对象的duang方法
  • 3.在duang方法内部传入想要duang的参数
    @Override
	public boolean onTouchEvent(MotionEvent event) {
		if(listener != null){
			//回调
			listener.duang(...);
		}
		return true;
	}

于是:在其他地放调用该监听器

    .setOnDuangListener(new OnDuangDuangListener() {
        @Override
        public void duang(int duang) {
            //好的,这样我就拿到了duang
        }
    });