Eventbus的初步使用
来源:互联网 发布:安易恢复软件 编辑:程序博客网 时间:2024/05/04 11:02
我遇到的问题是:fragment借助它所依赖的A Activity 开启B Activity,B Activity 返回的数据要传给fragment
startActivityForResult的方式只适合两个Activity之间传递数据,我要做的就是将B Activity传回来的数据
由A Activity的onActiityResult方法接收,并通过EventBus将接收的数据传递给fragment
Android Studio首先添加依赖
compile 'org.greenrobot:eventbus:3.0.0'
在需要接收数据的fragment里注册EventBus
我是在
onCreateView方法里注册的
在ondestroy方法里销毁的
注册:
@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { EventBus.getDefault().register(this);}
销毁:
@Overridepublic void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this);}新写
onEventMainThread方法用于接收自定义类WorkerIdEvent的对象,注意必须加上@Subscribe
@Subscribepublic void onEventMainThread(WorkerIdEvent event) { String msg = event.getMsg(); LogUtils.e("回到fragment中mag===="+msg); //被EventBus由其他Activity传进来的数据就是这个msg}我的
WorkerIdEvent类是如此定义的(不用继承啥,onEventMainThread方法参数只要是个object就行),因为我只需要接收一个String类型的数据所以并不复杂public class WorkerIdEvent { private String mMsg; public WorkerIdEvent(String msg) { mMsg = msg; } public String getMsg(){ return mMsg; }}好了接收数据的fragment中的设置搞定了,接着去Activity里抛数据去,@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1010 && resultCode == 1001 && null != data) { //獲取了worktype String workerTypeId; workerTypeId = data.getStringExtra("ID"); EventBus.getDefault().post(new WorkerIdEvent(workerTypeId)); }}我想要的数据就是这个workerTypeId,抛出去就是了
0 0
- EventBus的初步使用:
- EventBus的初步使用
- Eventbus的初步使用
- Android EventBus的初步使用
- Android EventBus的初步使用
- EventBus的使用详解(一)--初步使用EventBus
- EventBus的使用详解(一)--初步使用EventBus
- Android studio 上 EventBus的初步使用
- EventBus使用初步
- EventBus(初步使用)
- 初步使用EventBus (一)
- 初步使用EventBus
- eventbus 初步使用
- EventBus初步使用
- EventBus的初步接触
- EventBus使用详解(一)初步
- EventBus使用详解(一)——初步使用EventBus
- EventBus使用详解(一)——初步使用EventBus
- SpringMVC JackSon null属性不显示
- 硬币问题
- CRC16
- Android数据存储方式
- 从USB驱动器运行Windows 10
- Eventbus的初步使用
- C#数据类型
- Linux命令行一些快捷操作
- Numpy
- JAVA复制数组和重置数组大小
- Java Socket网络编程一
- sprintf() strcat() strcmp() 函数
- Spring mvc 如何获取表单值?
- 向项目中添加dtd文件实现代码提示