zoukankan      html  css  js  c++  java
  • EventBus3.0使用笔记.md

    事件总线这个其实没什么好说的,除了已经ondestroy的fragment或者activity不能接受外,只要定义了的都能接收消息
    代码如下,需要注意的一点就是接收的监听事件必须用public修饰并且加上@Subscribe注解

    compile 'org.greenrobot:eventbus:3.0.0'
    
    public class MainActivity extends Activity {
        private TextView textView;
        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView = findViewById(R.id.tv);
    
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, SecondActivity.class);
                    startActivity(intent);
                }
            });
    
            EventBus.getDefault().register(this);
        }
    
        @Subscribe
        public void onMessageEvent(MessageEvent messageEvent){
            textView.setText(messageEvent.getMessage());
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
    
            EventBus.getDefault().unregister(this);
        }
    }
    
    public class SecondActivity extends AppCompatActivity {
        private TextView tv_receive;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            tv_receive = findViewById(R.id.tv_receive);
            tv_receive.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    EventBus.getDefault().post(new MessageEvent("发送成功"));
                    finish();
                }
            });
    
        }
        @Override
        protected void onDestroy() {
            super.onDestroy();
        }
    }
    
    public class MessageEvent {
    
        private String message;
    
        public MessageEvent(String message) {
            this.message = message;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
  • 相关阅读:
    php公立转农历
    php判断客户端浏览器类型
    php为图片添加水印
    php类精确验证身份证号码
    webpack脚手架搭建(简单版)
    《深入浅出Node.js》第4章 异步编程
    js 实现继承相关
    设计模式:观察者模式
    bind 方法实现
    用 CSS 实现字符串截断
  • 原文地址:https://www.cnblogs.com/prophet-it/p/8921460.html
Copyright © 2011-2022 走看看