android: 返回前一个activity时传递参数
一,代码:
原activity
//得到launcher
ActivityResultLauncher launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
//新打开activity关闭时返回数据回调
@Override
public void onActivityResult(ActivityResult result) {
Log.d("debug","onActivityResult接收到返回数据");
if (result.getResultCode() == RESULT_OK) {
Log.d("debug","返回ok");
Bundle bundle = result.getData().getExtras();
String name = bundle.getString("name");
String gender = bundle.getString("gender");
Log.d("debug","接收到的参数:name:"+name+",gender:"+gender);
} else {
Log.d("debug","返回不ok");
}
}
});
//给按钮增加点击事件
Button button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, AnimActivity.class);
System.out.println("点击完成");
launcher.launch(intent);
}
});
打开的第二个activity
//给按钮增加点击事件:关闭activity
Button alphaButton = findViewById(R.id.alphaButton);
alphaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//要返回的数据
Intent returnIntent = new Intent();
returnIntent.putExtra("gender", "返回的数据");
returnIntent.putExtra("name", "王富贵");
setResult(Activity.RESULT_OK, returnIntent);
finish(); // 关闭当前Activity
}
});
二,查看效果:

浙公网安备 33010602011771号