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;
        }
    }
    
  • 相关阅读:
    ◆◆0创建表维护视图(SE54)
    如何将SM30中的表数据挂在传输请求中
    如何在表维护视图(maintenance view)上添加自定义按钮(SM30)
    boost智能指针指定const对象问题
    cygwin手动安装方法
    压缩文件夹内每个子文件夹到单独的压缩包
    虚函数重名
    OSX系统编译cocos2dx andriod工程
    WinExec 使用手记
    一种居于JvMouseGesture.pas的鼠标手势系统
  • 原文地址:https://www.cnblogs.com/prophet-it/p/8921460.html
Copyright © 2011-2022 走看看