Otto进行事件分发(Activity 与Activity与Fragment之间传递数据)
2016-10-27 16:36
387 查看
1. build.gradle添加如下引用
compile 'com.squareup:otto:1.3.5'
2. 定义Otto帮助类 返回bus对象
public class OttoBusHelper { private OttoBusHelper(){} private static Bus bus; public static Bus getInstance(){ if(bus==null) { synchronized (OttoBusHelper.class) { if (bus==null){ bus = new Bus(); } } } return bus; } }
3. 定义一个事件参数传递类
package com.choice.zlc.ottodemo; /** * Created by zlc on 2016/10/27. * 参数传递事件类 */ public class BusAction { private String s; public BusAction(String s){ this.s = s; } public String getS() { return s; } }
4. Activity中实现
MainActivity中实现订阅事件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); OttoBusHelper.getInstance().register(this); //订阅事件 initView(); } @Subscribe:这个在调用了register后有效,表示订阅了一个事件,并且方法必须用public修饰的,方法名随意取,重点是参数,它是根据你的参数进行判断 @Subscribe public void setTextString(BusAction action){ mText.setText(action.getS()+""); } 取消订阅 @Override protected void onDestroy() { super.onDestroy(); OttoBusHelper.getInstance().unregister(this); }
SecondActivity中实现
mBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { OttoBusHelper.getInstance().post(new BusAction("这是第二个页面传递过来的")); //发布事件 finish(); } });
5. 常用方法
register(Object o):注册,注册以后可以订阅事件unregister(Object o)注销.放弃对之前的订阅的所有事件
post(Object o)发布事件,会被有Subscribe注解的方法获取到
6. 联系方式
QQ:1509815887email:zlc921022@163.com
相关文章推荐
- EventBus,一个可以在Activity、Fragment、Service之间传递任意类型数据的事件总线框架
- Android笔记Fragment与Activity之间传递数据
- fragment与其部署Activity之间的数据传递
- Android笔记Fragment与Activity之间传递数据
- Android学习【2】Activity之间通过Application进行数据传递
- fragment与Activity之间的数据传递
- Android fragment和activity之间的数据传递交互
- 通过intent和bundle来进行Activity和Fragment的数据传递
- 王学岗Fragment(六)——Activity与fragment之间数据的传递
- Android 笔记-Fragment 与 Activity之间传递数据
- Activity与Fragment数据传递之Fragment之间获取数据
- Android中Activity和Fragment之间数据传递(例子中也有事务加载Fragment)
- Android 笔记-Fragment 与 Activity之间传递数据
- Activity与Fragment数据传递之Activity之间获取数据
- fragment和activity之间的数据传递
- Fragment和Activity之间的数据传递
- Fragment与Activity之间传递数据
- Fragment和activity的之间的数据传递以及页面跳转
- Fragment与Activity之间传递数据
- Android 数据传递(二)Activity与fragment之间的通信