前言:每个项目都会遇到fragment和activity相互调用的方法,因为项目中使用了EventBus,但是EventBus好像只是针对activity的,在fragment不太好使,亲测无效,下面介绍几个比较简单的方法:
在xxxActivity里面有一个方法xxMethod(),在xxxFragment里面调用:
一:直接调用:
xxxActivity activity= (xxxActivity) getActivity();
activity.test();
二:接口回调:
xxxFragment里面定义接口
public interface xxxInterface{
void getXXXMethodForActivity();
}
让xxxActivity实现xxxInterface接口,实现getXXXMethodForActivity方法,在里面TODO:做你的逻辑;然后在xxxFragment里面调用该方法:
if(getActivity()instanceof xxxInterface){ ((xxxInterface)getActivity()).getXXXMethodForActivity(); }
就这样就可以完美实现fragment调用activity里面的方法了,如有疑问,请联系:
博客:https://blog.csdn.net/qq_38508087
github:https://github.com/Jack-zhang-quan