组件间通信 Intent
传递单个数据
传递数据的组件
Intent intent = new Intent(FirstActivity.this, ThreeActivity.class);
// 传递单个数据
intent.putExtra("test","string");
intent.putExtra("number",123);
startActivity(intent);
**```
接受数据的组件**
```java
Intent intent =getIntent();
// 接受组件1的传递单个数据
String test = intent.getStringExtra("test");
int number = intent.getIntExtra("number", 0);
Log.e("tag","stringTest=>"+test);
Log.e("tag","numberTest=>"+number);
传递多个数据
发送数据
Bundle bundle =new Bundle();
bundle.putInt("number",123);
bundle.putString("string","string");
intent.putExtras(bundle);
接受数据
Bundle bundle = intent.getExtras();
int number1 = bundle.getInt("number");
String string = bundle.getString("string");
Log.e("tag","number=>"+number1);
Log.e("tag","string=>"+string);
将受到信息的组件数据发送给发送组件
intent.putExtra("back","abcdef");
setResult(1002,intent);
接受数据
// 返回数据给当前组件
startActivityForResult(intent,1001);
需要实现相应的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("tag","requestCode= "+requestCode);
Log.e("tag","resultCode= "+resultCode);
Log.e("tag","data= "+data.getStringExtra("back"));
}