第一步:在build.gradle中添加依赖dependencies {

 compile 'org.greenrobot:eventbus:3.0.0'}

第二步:创建一个 Event类: 注意:enum 不是class

public enum  Event {//消息名,可以根据这个名字判断是哪个消息    IMAGE_LOADER_SUCCESS;}

//------------主布局文件------------------------
<TextView    android:layout_width="match_parent"    android:layout_height="wrap_content" android:id="@+id/tv_text" /><Button android:layout_width="match_parent" android:layout_height="40dp" android:text="点击跳转到TwoActivity" android:id="@+id/bt_button"/>
//-----------TwoActivity布局-----------------------
<Button    android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt_button2" android:text="发送消息"/>

//---------创建一个消息了---MessageEvent ------------------------
public class MessageEvent {private String message;

public String getMessage() {return message; }

public void setMessage(String message) {this.message = message; }

public MessageEvent(String message) {this.message = message; }

public MessageEvent() { }}
//--------------MainActivity -中我们注册事件,用于接收消息,退出时需要注销-----------------
package eventbusdemo.wode.com.eventbusdemo;

import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;

import org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private Button bt_button;private TextView tv_text;

@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//找到控件 bt_button = (Button) findViewById(R.id.bt_button);tv_text = (TextView) findViewById(R.id.tv_text);//在需要订阅事件的地方注册事件 EventBus.getDefault().register(this);//设置监听 bt_button.setOnClickListener(this);

 }//用于接收传MessageEvent这个类的消息 @Subscribe(threadMode = ThreadMode.MAIN)public void onShowMessageEvent(MessageEvent messageEvent) {tv_text.setText("MainActivity:" + messageEvent.getMessage()); }

//用于接收没有传值的消息 /* @Subscribe public void onEventMainThread(Event event){ switch (event){ case IMAGE_LOADER_SUCCESS: Log.i("MainActivity--","IMAGE_LOADER_SUCCESS"); tv_text.setText("IMAGE_LOADER_SUCCESS"); break; } }*/

 @Override public void onClick(View v) {switch (v.getId()){case R.id.bt_button: Intent intent=new Intent(MainActivity.this,TwoActivity.class); startActivity(intent);break; } }

//(5)取消消息订阅 @Override protected void onDestroy() {super.onDestroy(); EventBus.getDefault().unregister(this); }}

//--------------TwoActivity 中,用于发送消息------------------------
package eventbusdemo.wode.com.eventbusdemo;

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;

import org.greenrobot.eventbus.EventBus;

public class TwoActivity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_two); Button bt_button2= (Button) findViewById(R.id.bt_button2); bt_button2.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {//(3)产生事件,即发送消息 // EventBus.getDefault().post(Event.IMAGE_LOADER_SUCCESS); //传值 EventBus.getDefault().post(new MessageEvent("哈哈哈哈哈")); } });

 }}
 

转载于:https://www.cnblogs.com/changyiqiang/p/6232346.html

Android中的eventBus传值相关推荐

  1. Android中使用EventBus事件发布/订阅框架实现事件传递

    场景 EventBus EventBus是一种用于Android的事件发布-订阅总线.它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多 ...

  2. 60.android 简单的EventBus传值,简单好用

    //第一步 导入依赖 implementation 'org.greenrobot:eventbus:3.0.0' //第二步 MainActivity里发送事件 //就写了个简单的Button按钮, ...

  3. 【EventBus】发布-订阅模式 ( Android 中使用 发布-订阅模式 进行通信 )

    文章目录 一.拷贝 发布-订阅模式 相关类 二.完整代码示例 一.拷贝 发布-订阅模式 相关类 将上一篇博客 [EventBus]发布-订阅模式 ( 使用代码实现发布-订阅模式 ) 写的 发布-订阅模 ...

  4. Android中WebView加载本地Html,与JavaScript与Android方法相互传值...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51759125 最近在做项目中,要使用High ...

  5. Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51809558 接着上篇Android中Web ...

  6. Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解

    在Android中,Intent对象负责各个Activity窗口之间的切换,同时他更担负起数据传输重任. 一般情况下,使用Intent对象进行简单窗口切换的代码如下: Intent i=new Int ...

  7. Android中的单例模式(java单例模式详解,Glide,EventBus,LayoutInfalter的源码单例模式详解)

    一.单例模式 (1)单例模式介绍和定义 ​ 大概意思是保证一个类在任何时候都只有一个实例在内存里,以static形式提供整个项目的访问.在Android系统中常用的地方有:创建一个SQLiteOpen ...

  8. android中常见的内存泄漏和解决的方法

    android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ...

  9. 从Android中Activity之间的通信说开来

    引言 最近两个星期在研究android的应用开发,学习了android应用开发的基础知识,基本控件,基本布局,基本动画效果,数据存储,http访问internet等等基础知识. android中有一个 ...

最新文章

  1. 算法导论-动态规划(dynamic programming)
  2. php curl 句柄 复用,PHP-curl multi批处理CPU负载过高的解决办法
  3. openjudge基础题3计算书费
  4. jsp自定义标签(taglib)编写的原理和实现
  5. (转载)查看Oracle字符集及怎样修改字符集
  6. 金蝶EAS BOS开发常用的代码说明及常见问题
  7. 关于highslide的一点学习
  8. 2014浙大ACM网络省赛-----Talented Chef问题(Problem -C)
  9. 简单粗暴的流水灯仿真和代码
  10. 《李宗仁回忆录》完整版在线及电子书下载
  11. Word2013自动生成中英文目录
  12. Unity 本地化比较实用的实现方案
  13. DongDong认亲戚(map+并查集)
  14. CKFinder3.5.1整合springboot修复bug免费
  15. idea中Empty tag doesn‘t work in some browsers 浏览器中一片空白,没有渲染样式,
  16. 区块链技术如何让租房市场回归理性?
  17. 深入浅出--何为多线程(引用自大神Kyrie lrving)
  18. Python运行出现“No module named ‘requests‘”
  19. win 10 显示未识别网络的 一种解决办法
  20. 【第19天】内涵深厚才能妙语连珠

热门文章

  1. ×××S:Reporting Services 技巧
  2. 网络规划设计培训与方案集下载
  3. 会计的思考(36):会计--企业运营的数码相机
  4. Asp.net无刷新调用后台实体类数据并以Json格式返回
  5. Ubuntu 10.10系统安装手记
  6. 全面访问JavaScript的最佳资源
  7. javascript 代码_代码简介:2016年JavaScript的现状
  8. Fiddler使用技巧:强大的数据文本编解码功能
  9. (C++)1022 D进制的A+B 除基取余法将10进制数换成给定进制数
  10. Python培训教程分享:visual studio编写python怎么样?