EventBus两个Activity传值

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;
    }
}

你可能感兴趣的:(第三方框架)