Android接口回调机制(有图有真相,如果你一直接触接口回调,但是自己又一直理解不了,这篇文章会让你秒懂)

本人自己也经常在开发中遇到接口回调机制,说来惭愧,虽然一直在用接口,但是只是去复制别人的代码,一直弄不明白接口回调的原理,甚至自己也努力去看了很多篇文章,几乎看了所有的接口回调的例子,什么延时问答啊,孔融让梨啊,都看了,例子都能背下来了,两三个月了还没理解。看来本人头脑不是一般的笨。哎。。。。。

也许是用多了吧,今天不知道怎么地灵光乍现了,突然就理解了。下面我就用我自己的理解方式说说接口回调机制。Andorid的button的setOnClickListener绝对是一个金典的接口回调例子,大家都经常这样写对吧,然后我们点了这个button就可以执行我们在onClick里面的代码了。这是个金典的例子,建议从这个例子去看源码上手叫容易。我就直接上步骤上代码上图了。


全手写,图也是自己画的,懂的勿喷,高手请绕道。(如果人品不错麻烦点个赞)


  fragmentb_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               //执行代码...
            }
        });


先上接口回调步骤,

1.定义一个接口,接口里面写执行的方法

    public interface GetData {
        void onCli(String str);//参数自定义
    }


2.需要引用的地方持有该接口的引用

 private GetData getData;


3.持有该接口的地方生成该接口的set方法

public void setGetData(GetData getData) {
        this.getData = getData;
    }


4.需要调用的地方调用接口

      setGetData(new GetData() {
            @Override
            public void onCli(String str) {
		//需要执行方法的代码...
                Toast.makeText(this.getContext(),str,Toast.LENGTH_LONG).show();
            }
        });


5.设置接口值
 getData.onCli("我不是瞎BB");


我分的比较详细,5步就能搞定了,代码很简单,相信都能看懂。前三步非常简单应该都没什么问题,就是后两步估计有点不好理解,(反正我就是被后两步搞的头回脑胀才理解不的,应该说是被这两步误导了,总听人说button的点击事件就是回调机制,然后我就天真的以为,调用了setOnClickListener就是最后一步,然后自己测试的时候每次都空指针。)其实我们可以想一想,我们每次在setOnClickListener里面写了代码,但是运行的时候马上执行了吗?并没有,是不是需要点击了按钮之后才会调用写的代码?所以我写的例子最后一步应该是我们设置了这个参数后,第四步写的代码才会被执行。Button的setOnClickListener也是,只不过setOnClickListener的onClick的参数是View,不需要我们手动去设置。如果还不懂再看下面一张图。

Android接口回调机制(有图有真相,如果你一直接触接口回调,但是自己又一直理解不了,这篇文章会让你秒懂)_第1张图片


如果实在理解不了,那么接口回调的初始化的步骤千万不要错了,按照1.2.3.4.5的方法去写绝对Ok。(不过应该没有比我还蠢的人了吧)



你可能感兴趣的:(Android)