1.startActivityForResult方法
第一个Activity主要代码
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn:
Intent intent = new Intent(TestSavedInstanceState.this,TestSavedInstanceStateTwo.class);
Bundle bundle = new Bundle();
intent.putExtras(bundle);//将Bundle添加到Intent,也可以在Bundle中添加相应数据传递给下个页面
startActivityForResult(intent, 0);// 跳转并要求返回值,0代表请求值
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bundle bundle = data.getExtras();//获取第二个Activity传回的数据
Toast.makeText(TestSavedInstanceState.this, bundle.getString("result"), Toast.LENGTH_LONG).show();
super.onActivityResult(requestCode, resultCode, data);
}
第二个Activity主要代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent =this.getIntent();
intent.putExtra("result", "aaaaaaaaaaa");Activity
/*
* 调用setResult方法将Intent对象返回给第一个Activity,第一个Activity就可以在onActivityResult方法中得到Intent对象,
*/
setResult(1001, intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
2.EventBus组件和组件之间的通信,简化通信。
添加依赖compile 'org.greenrobot:eventbus:3.0.0'
文件目录
第一个Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
mButton = (Button) findViewById(R.id.btnEvent);
mText = (TextView) findViewById(R.id.tvEvent);
mText.setText("我们都是祖国的花朵");
//首先注册
EventBus.getDefault().register(this);
satrActivity();
}
//跳转第二个页面
private void satrActivity() {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
//有几种线程模式,这里用主线程模式,不能进行耗时的操作
@Subscribe(threadMode = ThreadMode.MAIN)
public void Event(Message messageEvent) {
//获取第二个页面传回的数据
mText.setText(messageEvent.getMessage());
}
@Override
protected void onDestroy() {
super.onDestroy();
if(EventBus.getDefault().isRegistered(this)) {
//最后销毁
EventBus.getDefault().unregister(this);
}
}
第二个Activity
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
EventBus.getDefault().post(new Message("祖国伟大"));
return super.onKeyDown(keyCode, event);
}
版权声明:本文为博主原创文章,如需转载必须注明转载地址。 https://blog.csdn.net/yedekuqi4712/article/details/80196067