Android接口回调

接口在Android编码中是比较抽象的,本人在学习的过程中也有过困扰,在网上找到一篇不错的文章,在这里拿来自己进一步分析。让自己对接口有更深入的理解,也希望能帮到和我一样有疑问的人。如有转载或其他相关需求,请参考引用文章:http://blog.csdn.net/qq_23940659/article/details/50791721

接口是对某一种行为的抽象,具体的行为是实现接口的子类来完成的。

Android接口回调_第1张图片
图一

我们先创建一个接口,接口中有一个抽象方法showToast(),只要是实现了ToastListener的类都必须要重写showToast()方法。

接下来我们要给接口设置回调,新建一个类来设置回调,并写一个方法来回调接口的方法,可以用于其他类来实现接口的方法

Android接口回调_第2张图片
图二

可以看到我们创建的这个类中有ToastListener成员变量,在构造方法中,我们将外部传递进来的ToastListener赋值给了成员。

Android接口回调_第3张图片
图三

最后我们在主界面去实现接口中未实现的方法,创建接口回调的那个类,通过其构造函数实例化ToastListener接口,重写showToast()方法,在其中做弹吐司的操作。

Android是事件驱动类型的,我们这里分析一下最后谈吐司的逻辑是怎样是实现的。我们先给按钮注册点击事件(这里是系统写好的接口回调),在onClick()方法中我们调用了ToastListenerUser的useToast(),而useToast()方法中我们又调用了ToastListener的showToast()方法,我们要记得接口的具体实现方法都是实现了其方法的实现类来完成的,我们在主界面创建ToastListenerUser时传入了一个匿名的ToastListener实现类,我们重写了showToast(),所以最终的实现是在这里完成的,也就完成了我们的弹吐司的逻辑。

Android接口回调_第4张图片
图四

最重要的是我们要理解接口是抽象的,具体的方法是交给实现该接口的类来执行的。理解了这一点就能很大的帮助我们去理解接口的实现逻辑。

其实我们可以对上面的逻辑进行另一种写法,也更加简单。

Android接口回调_第5张图片
图五

我们不是有接口吗,接口是用来干嘛的?接口不就是用来实现的吗!我们让主界面实现ToastListener,代表我们就具有了showToast方法,也让原接口中的抽象方法具体了,这里类似系统提供的onClickListener。这样我们也能达到前面前面那种效果。通过这个例子有没有对接口的理解加深呢?记住最重要的一句话,接口就是用来实现的,抽象方法的具体执行是交给实现该接口的类的。

你可能感兴趣的:(Android接口回调)