EventBus两个Activity传值

来源:互联网 发布:微信显示网络出错1003 编辑:程序博客网 时间:2024/05/16 14:08

EventBus是针一款对Android的发布/订阅事件总线。它可以让我们很轻松的实现在Android各个组件之间传递消息,并且代码的可读性更好,耦合度更低。

依赖:compile ‘org.greenrobot:eventbus:3.0.0’

  • 1.1MainAcivity主方法
public class MainActivity extends AppCompatActivity {    //注解    @ViewInject(R.id.onbut)    private Button but;    private TextView ontv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ontv = (TextView) findViewById(R.id.ontv);        //注册EventBus        EventBus.getDefault().register(this);    }    public void onButton(View v){        Intent intent = new Intent(MainActivity.this, SecondActivity.class);        startActivity(intent);    }    //特别重要  @Subscribe(threadMode = ThreadMode.MAIN)    @Subscribe(threadMode = ThreadMode.MAIN)    public void onEventThread(FirstEvent event){        String msg = "onEventThread已经收到了消息"+event.getmEvent();        ontv.setText(msg);        Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();    }    @Override    protected void onDestroy() {        super.onDestroy();        //反注册EventBus        EventBus.getDefault().unregister(this);    }}
  • 1.2、SecondeActivity第二个页面
public class SecondActivity extends Activity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.second);    }    public void onPlay(View v){        EventBus.getDefault().post(new FirstEvent("FirstEvent btn clicked222"));    }}

1.3、FirstEvent的一个方法

public class FirstEvent {    private String mEvent;    public String getmEvent() {        return mEvent;    }    public void setmEvent(String mEvent) {        this.mEvent = mEvent;    }    public FirstEvent(String mEvent){        this.mEvent = mEvent;    }}
原创粉丝点击