当前位置: 首页 > ds >正文

安卓基础(startActivityForResult和onActivityResult)

onActivityResult 方法有三个参数:

  • requestCode:启动 Activity 时传入的请求码,用于区分不同的启动请求。
  • resultCode:返回结果的状态码,通常为 RESULT_OK 或 RESULT_CANCELED
  • data:一个 Intent 对象,包含返回的数据。

使用步骤

  1. 调用 startActivityForResult 启动新 Activity:在原 Activity 中调用 startActivityForResult 方法,并传入一个请求码。
  2. 在新 Activity 中设置返回结果:在新 Activity 完成操作后,调用 setResult 方法设置返回结果,并调用 finish 方法关闭当前 Activity
  3. 重写 onActivityResult 方法处理返回结果:在原 Activity 中重写 onActivityResult 方法,根据请求码和结果码处理返回的数据。
1. 原 ActivityMainActivity
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private static final int REQUEST_CODE = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 启动另一个 ActivityIntent intent = new Intent(this, SecondActivity.class);startActivityForResult(intent, REQUEST_CODE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE) {if (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();}}}
}
2. 新 ActivitySecondActivity
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;public class SecondActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);// 设置返回结果Intent intent = new Intent();intent.putExtra("result", "这是返回的结果");setResult(RESULT_OK, intent);// 关闭当前 Activityfinish();}
}

http://www.xdnf.cn/news/3845.html

相关文章:

  • 【Mytais系列】Update语句执行流程
  • 二、shell脚本--变量与数据类型
  • Python datetime库的用法 Python从入门到入土系列第3篇-洞察标准库DateTime
  • 【Spring】Spring中8种常见依赖注入使用示例
  • 健康养生新主张
  • web应用开发说明文档
  • matlab学习之旅
  • 数据结构---
  • 实战项目:基于控制台与数据库的图书管理系统开发指南
  • C语言中memmove和memcpy
  • 智慧校园整体解决方案-5PPT(65页)
  • python中的异常处理
  • 【CF】Day50——Codeforces Round 960 (Div. 2) BCD
  • 数学实验Matlab
  • 多把锁以及线程死锁问题
  • Linux-GRUB全面指南
  • CUDA输出“hello world”
  • 多数据源动态切换
  • 算法每日一题 | 入门-顺序结构-数字反转
  • (38)VTK C++开发示例 ---纹理裁剪
  • C++负载均衡远程调用学习之异步消息任务功能与连接属性
  • CVPR2021 | 重新思考视觉Transformer中的自注意力机制
  • Java学习手册:Spring 生态其他组件介绍
  • 单细胞测序试验设计赏析(一)
  • AWS在跨境电商中的全场景实践与未来生态构建
  • D. 例题3.2.2 整数划分问题
  • 二种MVCC对比分析
  • 学习黑客风险Risk
  • iOS启动优化:从原理到实践
  • 2025年渗透测试面试题总结-拷打题库35(题目+回答)