onActivityResult()代码示例
时间: 2023-09-10 17:04:47 浏览: 48
### 回答1:
当一个 Activity 启动另一个 Activity 并且希望在后者完成后获取结果时,可以使用 startActivityForResult() 方法。当后者完成后,会调用 onActivityResult() 方法来返回结果。以下是一个 onActivityResult() 的代码示例:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回的数据
String result = data.getStringExtra("result");
// ...
}
}
其中,requestCode 是启动 Activity 时传入的请求码,resultCode 是返回的结果码,data 是返回的数据。在这个示例中,我们检查 requestCode 和 resultCode 是否符合预期,然后从 data 中获取返回的数据。
### 回答2:
onActivityResult()是Android中的一个方法,用于处理由startActivityForResult()启动的Activity返回的结果。
以下是一个onActivityResult()的代码示例:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回的结果
String result = data.getStringExtra("result");
Toast.makeText(this, "返回结果:" + result, Toast.LENGTH_SHORT).show();
} else if(resultCode == RESULT_CANCELED) {
// 用户取消了操作
Toast.makeText(this, "操作被取消", Toast.LENGTH_SHORT).show();
}
}
```
在这个示例中,首先通过requestCode参数判断是哪个Activity返回的结果。这个requestCode是在startActivityForResult()方法中传入的一个整数值,用于标识不同的请求。
然后通过resultCode参数判断返回的结果是成功还是失败。resultCode是由子Activity的setResult()方法设置的,通常RESULT_OK表示成功,RESULT_CANCELED表示取消。
如果结果是成功的,可以通过data参数获取返回的数据。在这个示例中,我们假设子Activity返回了一个名为"result"的字符串数据。
如果结果是取消的,可以根据需要进行相应的处理,比如显示一个Toast提示用户操作被取消。
总之,onActivityResult()方法是用来接收Activity返回结果的,并根据返回的结果进行相应的处理。
### 回答3:
onActivityResult()是Android开发中的一个方法,用于处理在Activity之间进行交互时返回的结果。具体示例代码如下:
1. 在启动目标Activity的代码处添加启动代码:
```
// MainActivity.java
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivityForResult(intent, REQUEST_CODE);
```
2. 在目标Activity中设置需要返回的结果:
```
// TargetActivity.java
Intent intent = new Intent();
intent.putExtra("result", "返回的结果"); // 可以传递任意类型的数据
setResult(RESULT_OK, intent);
finish();
```
3. 在MainActivity中重写onActivityResult()方法,处理返回的结果:
```
// MainActivity.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result"); // 获取返回的结果
// 在这里对返回的结果进行处理
// ...
}
}
```
在上述代码中,首先在MainActivity中通过startActivityForResult()方法启动TargetActivity,并传递一个请求码(REQUEST_CODE)用于标识这次交互。然后在TargetActivity中设置需要返回的结果并调用setResult()方法,通过intent.putExtra()方法将结果放入Intent中。最后在MainActivity中重写onActivityResult()方法,在其中通过requestCode和resultCode进行判断,如果匹配上次交互,则从Intent中获取返回的结果。
通过使用onActivityResult()方法,可以方便地处理Activity之间的交互,并实现数据的双向通信。