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

首页第一步 我们要定一个类  ,定义属性 把对应的字段       定义 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();
    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值