内容
跳转
数据的传递
public class AActivity extends AppCompatActivity {
private Button AJumpB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
AJumpB = findViewById(R.id.AJumpB);
AJumpB.setOnClickListener(v -> {
Intent intent = new Intent(AActivity.this,BActivity.class);//新建一个意图对象
Bundle bundle = new Bundle();//新建一个bundle用于存放要传递的数据
bundle.putString("name","vuhen");//存放一个string类型数据 key-value形式
bundle.putInt("qq",2754);//存放一个int类型数据 key-value形式
intent.putExtras(bundle);//将存好数据的bundle放进意图对象中
//跳转到BActivity并携带数据,b跳转回来无法携带数据
// startActivity(intent);
//跳转到BActivity并携带数据请求码设置为0 这种startActivityForResult跳转能在b回来的时候携带数据
startActivityForResult(intent,0);
});
}
@Override
//b回来的时候带的数据 请求码,返回码,意图对象
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bundle bundle = data.getExtras();//获取b中存放的bundle对象
System.out.println(bundle.get("bname"));//打印一下bname的数据
Toast.makeText(AActivity.this,bundle.getString("bname")+","+
requestCode+","+resultCode,Toast.LENGTH_SHORT).show();
}
}
public class BActivity extends AppCompatActivity {
private Button finish;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
Bundle bundle = getIntent().getExtras();//获取a携带的bundle
textView = findViewById(R.id.jumpb_textView);
textView.setText(bundle.getString("name")+","+bundle.getInt("qq"));//设置textview的值为a传过来的
finish = findViewById(R.id.finish);
finish.setOnClickListener(v -> {
Intent intent = new Intent(BActivity.this,AActivity.class);
Bundle bundle1 = new Bundle();
bundle1.putString("bname","哈哈");
intent.putExtras(bundle1);
setResult(RESULT_OK,intent);//回传数据给A,返回码-1
finish();//关闭当前页面
});
}
}