Android-eventBus的使用

来源:互联网 发布:无主之地2 优化 编辑:程序博客网 时间:2024/05/16 06:55

我主要在项目中使用如下: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);
    
}





0 0
原创粉丝点击