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