今天通过AV老师的视频学习了一下通过接口的方式解决Activity与Fragment之间通信的问题,实现Activity与Fragment之间的解耦合,作为笔记简单记录一下。
先简单说明一下思路:
Activity与Fragment之间的通信,避免不了相互调用各自的方法,而方法无非包含以下几方面的内容:方法名称,参数,返回值,现在要做的就是把需要调用的方法抽象出来。
1、定义抽象类,只提供方法名;
2、分别定义四种抽象类:无参无返回值、有参无返回值、有参有返回值、无参有返回值,继承第一步定义的抽象类;
3、定义管理类,管理类功能:存储四种抽象类实例、暴露抽象类的调用方法;
4、与Activity和Fragment绑定;
代码结构:
在Activity中通过管理类添加需要调用的方法,如图:
为了方便,抽象了一下BaseFragment,在其中实现所定义的接口与Activity的绑定:
在Fragment中调用抽象类中定义的方法即可:
github地址:https://github.com/wlm1314/Decoup.git