简单的EventBus传值

来源:互联网 发布:java 当月剩余天数 编辑:程序博客网 时间:2024/06/03 19:19

EventBus更像是startActvity的双向传值

1.首先通过一个实体类,来携带参数

public class FirstEvent {    private final String msg;    public FirstEvent(String msg) {        this.msg=msg;    }    public String getMsg() {        return msg;    }}
2.在main里面写

public class MainActivity extends AppCompatActivity {    private Button btn_try;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //注册EventBus        EventBus.getDefault().register(this);        btn_try = (Button) findViewById(R.id.btn_try);        tv = (TextView) findViewById(R.id.tv);//为按钮添加监听        btn_try.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(getApplicationContext(),SecondActivity.class));            }        });    }   public void  onEventMainThread(FirstEvent event){       tv.setText("来自第二个Acitity的数据"+event.getMsg());    }    @Override    protected void onDestroy() {        super.onDestroy();//        注销        EventBus.getDefault().unregister(this);    }}
3.第二个SecondActivity代码

public class SecondActivity extends AppCompatActivity {    @InjectView(R.id.btn_first_event)    Button btnFirstEvent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        ButterKnife.inject(this);    }    @OnClick(R.id.btn_first_event)    public void onClick() {        EventBus.getDefault().post(new FirstEvent("我是Second我要发给Main信息"));    }}

4.gradle里面的要添加的包

compile 'de.greenrobot:eventbus:2.4.0'compile 'com.jakewharton:butterknife:6.1.0'

5.在main.xml里面写

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="haokuanyi.eventbus.MainActivity">    <Button        android:id="@+id/btn_try"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="btn_bty"/>    <TextView        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="match_parent"/></LinearLayout>

6.在Second.xml里面写

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="haokuanyi.eventbus.SecondActivity">    <Button        android:id="@+id/btn_first_event"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="First Event"/></RelativeLayout>



0 1