一、向下传递,AActivity->BActivity

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val button1: Button = findViewById(R.id.button1)button1.setOnClickListener {val data = "Hello SecondActivity"val intent = Intent(this, SecondActivity::class.java)intent.putExtra("extra_data", data)startActivity(intent)}
}

AActivity在onCreate方法设置按钮监听,传递数据:"Hello SecondActivity",

putExtra的key:"extra_data"。

BActivity在onCreate方法设置监听,获取数据,打印到日志,

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_second)val extraData=intent.getStringExtra("extra_data")Log.d("SecondActivity","extraData = $extraData")
}

运行程序,点击AActivity的按钮,日志输出:

二、向上传递,BActivity->AActivity

在AActivity的onCreate方法调用registerForActivityResult,

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {val resultCode = it.resultCodeval data = it.dataLog.d(tag, "it = $it")if (resultCode == RESULT_OK) {Log.d(tag, "data = ${data?.getStringExtra("data_return")}")}}.launch(Intent(this, SecondActivity::class.java))
}

在BActivity重写onBackPressed方法,注意,不要写super.onBackPressed()

override fun onBackPressed() {val intent=Intent()intent.putExtra("data_return","Hello FirstActivity")setResult(RESULT_OK,intent)finish()
}

运行程序,会自动跳到BActivity,此时按下返回键,调用onBackPressed函数,AActivity的registerForActivityResult方法内的代码运行,查看打印日志:

Activity之间的数据传递相关推荐

  1. Android中Activity之间的数据传递(Intent和Bundle)

    当一个Activity启动另一个Activity时,常常会有一些数据传过去,对于Activity之间的数据交换更简单,因为两个Activity之间进行数据传递交换更简单,因为两个Activity之间本 ...

  2. Android--Activity的跳转及Activity之间的数据传递

    Activity的跳转及Activity之间的数据传递(作业) 首先呢,看到这个作业第一感觉并不难,因为只是涉及到多activity之间的跳转以及简单的数据传递而已.然后,做的时候也没花费多长的时间, ...

  3. 【好文推荐】Activity之间的数据传递方法汇总

    在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法. 1.通过 Intent 传递 我们在进行 Activit ...

  4. Activity的创建步骤+Activity之间的数据传递+案例(人品测试器)

    Android的四大组件: 1.activity(多层界面运用) 2.广播接收者 3.服务 4.内容提供者 此外,我这里还会说道 5.多媒体编程(图形.声音.视频) 6.Fragment+动画 7.S ...

  5. android activity之间传递对象,Android Activity之间的数据传递

    一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent ...

  6. Activity之间的数据传递—实现Parcelable接口

    一.单向传递数据和接收 1.可以传递数据类型 传递基本数据类型.字符串和对应的数组 传递Bundle(类似HashMap) 传递对象数据 传递Integer集合.String集合和parcelable ...

  7. Activity之间的数据传递方法汇总系列教学

    近日一好友去阿里面试,面试失败了,分享了一个他最不擅长的算法面试题.题目是这样的. 题目:给定一个二叉搜索树(BST),找到树中第 K 小的节点. 出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深 ...

  8. android 打印流程图,Android实现Activities之间进行数据传递的方法

    本文实例讲述了Android实现Activities之间进行数据传递的方法.分享给大家供大家参考.具体分析如下: 首先,先说明一下Activity的启动及关闭: 1. startActivity(In ...

  9. 三个activity之间跳转 数据传递_第二百四十二回:Android中Fragment之间的数据传递概述...

    各位看官们大家好,上一回中咱们说的是Android中Activity之间数据传递的例子,这一回咱们说的例子是Fragment之间的数据传递.闲话休提,言归正转.让我们一起Talk Android吧! ...

最新文章

  1. Ubuntu环境变量
  2. gis中的擦除_GIS案例分析 | 公园建设选址
  3. 主键、唯一键与唯一索引的区别
  4. [译] D3.js 嵌套选择集 (Nested Selection)
  5. Android多线程分析之三:Handler,Looper的实现
  6. 从飞机上看下雨是这样子,太震撼了!
  7. Smarty3——foreach
  8. 巧用G6FTPServer账号***台湾某图书服务器
  9. 雷神笔记本关闭跳出垃圾游戏广告
  10. python 实现改变excel文件列宽
  11. flv播放器V2.6.5官方版【免费的FLV视频播放器】
  12. java毕业设计奖助学金评审mybatis+源码+调试部署+系统+数据库+lw
  13. C语言|博客作业10
  14. 第7章第22节:双图排版:两张图片并列靠边对齐 [PowerPoint精美幻灯片实战教程]
  15. Leetcode 14.最长公共前缀(Longest Common Prefix)
  16. 腾讯云函数报错 Invoking task timed out after 3 seconds
  17. deeplabv3+训练自己的数据集
  18. mac上安装windows系统
  19. 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹
  20. Spring rebooted --重新认识Spring

热门文章

  1. 华为校园大使面试经验
  2. 前端非常好用的取色器和截图工具
  3. TensorFlow实现简单线性回归
  4. openmpi入门1-安装与测试
  5. html5文档首行缩进,pages文稿首行缩进
  6. linux中initrd的含义,什么是initrd
  7. 浙大PAT 乙级(题号1046~1050)自解全AC Java | C++实现
  8. 更改 Ubuntu22.04 系统软件源
  9. 驰为Hi8 pro 安卓5.1 root
  10. IDEA_02 修改项目编码格式修改字体,大小