Android 在自定义dialog 跳转到 Aactivity 里获取信息通过setResult传递信息 怎么在自定义dialog中使用 onActivityResult 方法获取传递的信息
时间: 2024-09-21 19:02:27 浏览: 67
在Android中,如果你想在自定义Dialog中启动一个新的Activity并通过`startActivityForResult()`方法传递数据,然后在Dialog外部接收这个结果,你需要做以下几个步骤:
1. **在Dialog中启动Activity**:
在自定义Dialog的点击事件或其他触发操作的地方,你可以创建一个新的Intent,并设置需要传递的数据,例如:
```java
Intent intent = new Intent(context, AActivity.class);
intent.putExtra("key", "你要传递的信息");
dialog.show(getFragmentManager(), "dialog_tag"); // 使用FragmentManager显示Dialog
startActivityForResult(intent, REQUEST_CODE); // 设置请求码,比如100
```
2. **设置请求码**:
确保你在启动Activity时设置了唯一的请求码,这会在`onActivityResult()`中作为标识。
3. **处理结果**:
在自定义Dialog之外的AActivity中,重写`onActivityResult()`方法来接收结果。通常你会在`onDestroyView()`或`onPause()`这样的生命周期回调中检查结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String receivedData = data.getStringExtra("key"); // 从Intent中获取传递的信息
// 这里可以处理接收到的信息
}
}
```
4. **返回结果**:
如果在AActivity中处理完数据并想要关闭Activity返回结果,记得调用`finish()`方法,并且指定`RESULT_OK`表示成功。
```java
// 在AActivity完成操作后关闭自身并返回数据
finish();
```
阅读全文