最近再写一个项目,里面有各种各样的传值,基本都如出一辙,都是页面之间传值,传值的方式有很多,Intent、BroadCast、Service、EventBus… 太多了,今天我写下这篇博客,也是为了厚积薄发,为我以后的学习技术的道路铺平道路。
也许你没有写博客的习惯,现在不想写,未来更不想写,也许你也会问为什么要写博客?写了博客又有什么用?
博客记录的是我们在实践中积累的点点滴滴,有时你遇见了和上一次同样的bug或是什么,但是你又忘记怎么去解决,你又不得不去baidu、google一下,一查有时10来20分钟,但是你当时把它写到博客上记录下来,你会发现这会很省事,2、3分钟搞定,同样,它也是对知识的积累,帮助你把知识牢记在脑海中。
咳咳。 唠叨这么多,你一定看腻了,不多说了,下面我就把我写的一个小Demo发上来,供看见我这篇博客的你享用,保证你在看了之后茅塞顿开。
接口回调是什么?
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
同时,接口回调需要3个基本类实现:接口(定义传输数据的方法)、功能类(提供数据的一方)、实现类(接受数据的一方)
1、先定义一个接口
public interface ShopInterFace {
//方法里面是需要传递的参数的值
void getData(String name,int allNum,int allPrice);
}
2、创建一个功能类(A)
1、声明接口对象
private ShopInterFace interFace;
2、设置监听(实例化接口)
public void setInterFace(ShopInterFace interFace){
this.interFace = interFace;
}
3、添加调用接口的方法
public void setData(String name,int allNum,int allPrice){
interFace.getData(name,allNum,allPrice);
}
4、在需要的地方调用接口的方法
setData("哈哈",1,1);
3、实现类(B)
1、创建功能类对象
private A a;
2、利用功能类对象调用功能类里实例化接口的方法
//第一种
a.setInterFace(this);
//第二种
a.setInterFace(new ShopInterFace() {
@Override
public void getData(String name, int allNum, int allPrice) {
Log.e("TAG",name+allNum+allPrice)
}
});
其实也就那么回事儿,希望你看完我的博客后会记住接口回调的机制,若是茅塞顿开的话,记得别忘了点个关注(●’◡’●)