Android隐式Intent实现页面回跳与startActivityForResult详解
5星 · 超过95%的资源 52 浏览量
更新于2024-08-30
收藏 126KB PDF 举报
在Android应用开发中,Intent是一种强大的工具,用于在应用程序内部或不同组件之间传递数据和控制流程。在之前的章节中,我们学习了如何使用显式Intent进行页面的向下跳转,即从一个Activity明确指定目标Activity进行跳转。然而,有时候我们需要实现的是隐式Intent,也就是从当前Activity跳转回之前访问过的某个Activity,这种情况下,通常是从一个更高级别的Activity返回到一个较低级别的Activity。
在Android的Activity设计中,`startActivityForResult()`方法起到了关键作用。这个方法不仅仅用于启动一个新的Activity,它还允许上一个Activity在目标Activity执行完毕后接收到结果。这在用户交互过程中非常有用,比如从搜索结果列表选择一项,然后返回到搜索结果页面并显示所选内容。`startActivityForResult()`方法接受两个参数:第一个参数是Intent,用于指定要启动的Activity;第二个参数是请求码(request code),它是一个整数值,用于标识这次请求,上一个Activity可以通过它来识别返回的数据来源。
以下是一个简单的例子,展示如何在`MainActivity`中使用`startActivityForResult()`实现隐式Intent跳转:
```java
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button bt;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = findViewById(R.id.button1);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 创建一个Intent,指定要启动的FirstActivity作为目的地
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
// 使用startActivityForResult()方法启动FirstActivity,并传递请求码
startActivityForResult(intent, 1); // 1是一个示例请求码
}
});
}
// 当从FirstActivity返回时,会在onActivityResult()方法中处理结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK) {
// 处理从FirstActivity返回的数据
String resultData = data.getStringExtra("result"); // 假设FirstActivity返回了一个字符串
tv.setText(resultData);
}
}
}
```
在`onActivityResult()`方法中,我们检查请求码(`requestCode`)是否与我们启动FirstActivity时设置的一致,如果匹配且结果状态(`resultCode`)为`RESULT_OK`,则意味着FirstActivity成功完成任务并提供了数据。这时,我们可以从`data`对象中获取返回的数据并更新UI。
了解并熟练运用`startActivityForResult()`方法和隐式Intent,可以帮助开发者构建更加流畅、灵活的用户体验,尤其是在处理Activity之间的导航和数据交互时。
2014-07-22 上传
2023-03-30 上传
2023-05-31 上传
2023-06-09 上传
2023-06-01 上传
2023-04-20 上传
2023-06-28 上传
weixin_38738189
- 粉丝: 5
- 资源: 954
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解