首页 > 技术文章 > 接口回调

devli 2016-03-10 16:51 原文

类似onClickListener的接口回调

1.定义一个interface

    public interface myClickListener{
        public void Click1();
        public void Click2();
    }

2.定义listener

    private myClickListener listener;

3.定义一个暴露在外的方法

    public void setMyClickListener(myClickListener){
        this.listener = listener;
    }

4.在base类中或自定义控件类中调用

        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                listener.Click1();
            }
        });
        bt2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                listener.Click2();
            }
        });

5.外部调用(这里MyView为自定义的控件,上边有两个button可以点击)

    MyView view = (MyView) findViewById(R.id.myView);
    btn.setMyClickListener(new BaseObject.myClickListener() {
            @Override
            public void Click1() {
                Toast.makeText(MainActivity.this, "left is clicked", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void Click2() {
                Toast.makeText(MainActivity.this, "right is clicked", Toast.LENGTH_SHORT).show();
            }
        });

 

推荐阅读