Evnetbus使用
来源:互联网 发布:vb.net 入门 编辑:程序博客网 时间:2024/05/22 10:26
1.导入依赖
compile 'org.greenrobot:eventbus:3.0.0'
2.消息类
3.//发送信息的实体类public class FirstEvent { private String mMsg; public FirstEvent(String msg) { // TODO Auto-generated constructor stub mMsg = msg; } public String getMsg(){ return mMsg; }}
public class MainActivity extends AppCompatActivity { Button btn,btn3; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //注册EventBus EventBus.getDefault().register(MainActivity.this); btn = (Button) findViewById(R.id.btn1); btn3 = (Button) findViewById(R.id.btn3); tv = (TextView)findViewById(R.id.tv); //非粘性事件 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), Main2Activity.class); startActivity(intent); } }); //粘性事件 btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().postSticky(new FirstEvent("Hello,Everyone,my name is tianmengjie")); Intent intent = new Intent(getApplicationContext(), Main3Activity.class); startActivity(intent); } }); } @Subscribe(threadMode = ThreadMode.MAIN,sticky = false) public void onEventMainThread(FirstEvent event) { String msg = "收到了消息:" + event.getMsg(); tv.setText(msg); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } @Override protected void onDestroy(){ super.onDestroy(); EventBus.getDefault().unregister(this);//反注册EventBus }}4.
public class Main2Activity extends AppCompatActivity { private Button btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); btn2 = (Button) findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().post(new FirstEvent("Evenbus的普通事件")); finish(); } }); }}5.
public class Main3Activity extends AppCompatActivity { Button find; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); find = findViewById(R.id.find); textView = findViewById(R.id.main3text); find.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!EventBus.getDefault().isRegistered(Main3Activity.this)) { EventBus.getDefault().register(Main3Activity.this); } } }); } @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void getDate(FirstEvent first) { textView.setText("姓名:" + first.getMsg()); }}
阅读全文
0 0
- Evnetbus使用
- EvnetBus的原理和使用
- 使用EvnetBus进行消息传递解析
- EvnetBus消息传递 优化写法较传统写法更好理解、使用
- EvnetBus 细节的研究
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用++,--
- 使用$@ $!
- 使用
- SoftICE使用(指令使用)
- 使用GraphEdit使用
- 使用HtmlParser使用心得
- 时钟使用使用
- C++学习日记(1)
- [工作效率提升]焦虑性失眠的应对方法
- JavaCore-OOP-1-最最基础的商品管理
- Python对mysql的操作三
- day 28 awk
- Evnetbus使用
- RxJava+MVP+轮播+retrofit+条目点击+recyclerView
- 《七点三刻》北方降温/腾讯成功吃鸡/IS灭亡/小蓝车可电话退款…有价值的新闻早餐 2017年11月23日星期四,第014期
- poj2653 Pick-up sticks
- [Unity]Unity组件崩溃的通用的几种解决办法
- 登陆注册
- 人工智能让人类尴尬:伦理道德法律框架设计滞后
- ijkplayer播放器
- 公众号批量获取用户信息,php通过openid批量获得微信用户信息