我主要在项目中使用如下:Fragment通知四个子fragment
1,在父Fragment里面发布消息:
(1).声明全局变量
public EventBus eventBus;
(2).在父Fragment的onCreateView里面new对象:
eventBus = new EventBus();
(3)注册子fragment
type = new fragment();//新建的fragment
eventBus.register(type);
(4).发布消息
private void notifiFragment(String p){
eventBus.post(p);//发布消息
}
2,在子Fragment接收消息:
@Override
public void onEvent(String r) {
//dosomething
}
我的fragment基类如下:
/**
* fragment基类
*
*
*/
public abstract class BaseFragment extends Fragment {
public Activity mActivity;
protected boolean isVisible;
/**
* 在这里实现Fragment数据的缓加载.
* @param isVisibleToUser
*/
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(getUserVisibleHint()) {
isVisible = true;
onVisible();
} else {
isVisible = false;
onInvisible();
}
}
protected void onVisible(){
initData();
}
// 初始化数据, 可以不实现
public abstract void initData();
protected void onInvisible(){
}
// fragment创建
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = getActivity();
}
public abstract void onEvent(String p);
}