Java代码如何写registerForActivityResult
时间: 2024-05-04 13:13:41 浏览: 12
在Java中使用registerForActivityResult方法可以实现从子Activity获取返回结果。下面是一个示例代码:
```java
// 在FatherActivity中调用registerForActivityResult方法
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
// 处理返回的数据
}
}
);
// 在FatherActivity中启动SonActivity并获取返回结果
Intent intent = new Intent(FatherActivity.this, SonActivity.class);
launcher.launch(intent);
```
在上述代码中,我们首先创建了一个ActivityResultLauncher对象,该对象用于处理返回结果。然后,我们调用registerForActivityResult方法,将ActivityResultContracts.StartActivityForResult作为参数传递给它,以指定我们希望获取返回结果。在回调函数中,我们可以通过result对象获取返回的结果数据,并进行相应的处理。
接下来,我们可以在FatherActivity中启动SonActivity,并通过launcher对象的launch方法来启动子Activity并获取返回结果。
请注意,上述代码中的FatherActivity和SonActivity是示例中的两个页面,你需要根据实际情况替换为你自己的Activity类名。