Android 回调方法的实现

Android 回调方法的实现

原理

接口可以引用实现了它的类

假设有一个接口ICallBack,MainActivity类实现接口 ICallBack可以去引用MainActivity时里面实现方法

CallBack里面有一个ICallBack的引用,调用ICallBack 的引用即是调用MainActivity里面的实现方法

那么,前提就是CallBack里面要传入MainActivity类中。

也可以通过匿名类实现。

代码实现

接口 ICallBack

public interface ICallBack {
    
    
    void onClick();
}

CallBack类

public class CallBack {
    
    

    ICallBack callBack;

    public void setCallBack(ICallBack callBack){
    
    
        this.callBack = callBack;
    }

    public void callOnClick(){
    
    
        if (callBack != null)
            callBack.onClick();
    }

}

实现类 MainActivity

public class MainActivity extends AppCompatActivity implements ICallBack{
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        CallBack iCallBack = new CallBack();

        iCallBack.setCallBack(this);
        //这里通过匿名类接收回调
//        iCallBack.setCallBack(new ICallBack() {
    
    
//            @Override
//            public void onClick() {
    
    
//                Toast.makeText(MainActivity.this, "onClick"
//                        , Toast.LENGTH_SHORT).show();
//            }
//        });

        iCallBack.callOnClick();
    }

    @Override
    public void onClick() {
    
    
        Toast.makeText(MainActivity.this, "onClick"
                        , Toast.LENGTH_SHORT).show();
    }
}

## 实现 setCallback 可以转化为 setOnClickListener callOnClick() 可以看作为 onClick() 也就是在调用onClick()方法的时候,其实是在调用实现了OnClickListener 类的onClick()方法

参考链接

猜你喜欢

转载自blog.csdn.net/qq_40166103/article/details/115367460