EventBas简单的黏性事件传值的简单实现

来源:互联网 发布:淘宝自出版平台 编辑:程序博客网 时间:2024/06/11 16:08

首页第一步 我们要定一个类  ,定义属性 把对应的字段       定义 get set 引入



在自己的需求的界面 拿到对应的id 参数   ,比如一个Bnaner的轮廓图里面的Id 

    banner.setOnBannerListener(new OnBannerListener() {            @Override            public void OnBannerClick(int position) {                for (int i = 0; i <list.size(); i++) {                    for (int j=0;j<list.get(i).getChildList().size();j++){                        String dataId = list.get(i).getChildList().get(j).getDataId();                        strings.add(dataId);                    }                }                   //黏性事件把Id 传过去                EventBus.getDefault().postSticky(new Bas(strings.get(position)+""));                Intent intent = new Intent(getActivity(),Main2Activity.class);                startActivity(intent);            }        });

重点 的一句话     根据自己的需求 传参数

    //黏性事件把Id 传过去                EventBus.getDefault().postSticky(new Bas(strings.get(position)+""));

第二步 就是在接收的那边要做的事情

public class Main2Activity extends AppCompatActivity implements IView2 {    private JCVideoPlayerStandard jcVideoPlayerStandard;   /* String s1="http://2449.vod.myqcloud.com/2449_22ca37a6ea9011e5acaaf51d105342e3.f20.mp4";    String s2="http://player.youku.com/player.php/sid/XMjUyODI2NDc2MA==/v.swf";//不支持swf格式的视频播放*/    private  String id;    UserPresenter2 userpresenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        getSupportActionBar().setTitle("jiecaovideoplayer的使用");        jcVideoPlayerStandard= (JCVideoPlayerStandard) findViewById(R.id.jiecao_Player);        //注册事件        if (!EventBus.getDefault().isRegistered(Main2Activity.this)){            EventBus.getDefault().register(this);        }        userpresenter = new UserPresenter2(this);        userpresenter.getUsers(id);    }    //接收消息  添加注解 如果是黏性事件 将stick设置为true    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)    public void receiveMessage(Bas ge) {        id= ge.getId();    }    @Override    protected void onDestroy() {        //移除所有黏性事件        EventBus.getDefault().removeAllStickyEvents();        //销毁EventBus        EventBus.getDefault().unregister(this);        super.onDestroy();    }    @Override    public void getNews(Home2.RetBean hdurl) {        //Toast.makeText(this, "进来了", Toast.LENGTH_SHORT).show();        //Log.d("mylog", "getNews: "+hdurl.getHDURL() );        jcVideoPlayerStandard.setUp(hdurl.getSDURL(),jcVideoPlayerStandard.SCREEN_LAYOUT_NORMAL,"视频标题");    }
如果看不懂就下面的代码
     //注册事件        if (!EventBus.getDefault().isRegistered(Main2Activity.this)){            EventBus.getDefault().register(this);        }


把id提成全局     private String id;
 //接收消息  添加注解 如果是黏性事件 将stick设置为true    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)    public void receiveMessage(Bas ge) {        id= ge.getId();    }    @Override    protected void onDestroy() {        //移除所有黏性事件        EventBus.getDefault().removeAllStickyEvents();        //销毁EventBus        EventBus.getDefault().unregister(this);        super.onDestroy();    }



原创粉丝点击