添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首页 > 软件编程 > Android > Kotlin startActivity跳转Activity

Kotlin startActivity跳转Activity实现流程详解

作者:go2coding

在Android当中,Activity的跳转有两种方法,第一个是利用startActivity(Intent intent);的方法,第二个则是利用startActivityForResult(Intent intent,int requestCode);的方法,从字面上来看,这两者之间的差别只在于是否有返回值的区别,实际上也确实只有这两种区别

从一个 Activity 跳到另一个 Activity 在编写安卓代码是最常见的事情了。我们不可能在一个页面中,把所有的事情都做完。

kotlin 中跳转的程序也比较简单,跟 java 差不多。如果熟悉 java 代码的话,只需要把代码改变过来而已。

带参数的调整

从一个 Activity 跳到另一个 Activity 中,如同调用函数一样,可以把数据传递给另外的 Activity 中, Activity 在接受到这个数据后,可以根据数据的情况进行相应的处理操作。

对于跳转 Activity android 中使用的是 startActivity ,在 startActivity 的时候可以传递进去一个 Intent ,这个 Intent 可以把要传递的 Activity 和参数都塞进去,使用的方法如下:

            val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putExtra("request_time",  sdf.format(Date()))
            startActivity(intent)

这里我们从MainActivity,跳到 MainActivity2中去,我们传递的字段为request_time,在intent中用putExtra放入。

MainActivity2 中直接用intentgetStringExtra 来取得相关的字段。

tv_activity.setText(intent.getStringExtra("request_time"))

自定义数据传输

大多数,我们不仅仅只是想传递一个 基础类型的数据,对于自定义的类或者数据也是可以做得到的,这点Kotlin 看起来会简单多了,特别是创建Parcelable

创建一个自定义数据类型:

@Parcelize
data class MessageInfo(val content:String,val sent_text:String):Parcelable

@Parcelize注解 帮我们把Parcelize的接口都实现了。

传递数据类型,启动相关的页面:

        btn_activity1.setOnClickListener{
            val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var message:MessageInfo = MessageInfo("hello MainActivity2",sdf.format(Date()))
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putParcelableArrayListExtra("request", arrayListOf(message))
            startActivity(intent)

使用putParcelableArrayListExtra 把相关的数据放入。接收端同样的来接收数据类型:

var messages = intent.getParcelableArrayListExtra<MessageInfo>("request")

startActivityForResult

在跳转后的页面,如果在跳转回去的时候,也可以设置相应的回调参数,和回调状态值。在startActivity 的时候,换为startActivityForResult,重载onActivityResult 的方法,就可以得到返回的数值。

        btn_activity2.setOnClickListener {
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            startActivityForResult(intent,9)

重载onActivityResult方法,等待返回结果:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

MainActivity2页面中,用Intent的方式来跳回原来的页面。

        btn_activity20.setOnClickListener {
            var intent: Intent = Intent()
            setResult(0,intent)
            this.finish()

Activityandroid 四大组件之一,后面其他的组件还会一一的进行介绍,Activity 其实有很多东西可以学习,特别是看看他的源代码,会发现很多可以用的技巧,但是还是得先学会怎么使用Activity,这个才是基础,这里仅仅介绍了跳转的用法,其他的后面还会进行介绍。

到此这篇关于Kotlin startActivity跳转Activity实现流程详解的文章就介绍到这了,更多相关Kotlin startActivity跳转Activity内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • Flutter插件开发之HmsScanKit实现示例详解
    Flutter插件开发之HmsScanKit实现示例详解
    2022-11-11
  • kotlin开发cli工具小技巧详解
    kotlin开发cli工具小技巧详解
    2022-12-12
  • Kotlin挂起函数应用介绍
    Kotlin挂起函数应用介绍
    2022-11-11
  • OpenHarmony实现屏幕亮度动态调节方法详解
    OpenHarmony实现屏幕亮度动态调节方法详解
    2022-11-11
  • Kotlin startActivity跳转Activity实现流程详解
    Kotlin startActivity跳转Activity实现流
    2022-11-11
  • Android入门之Activity间互相传值详解
    Android入门之Activity间互相传值详解
    2022-11-11
  • Android入门之IntentService的使用教程详解
    Android入门之IntentService的使用教程详解
    2022-11-11
  • Android权限机制深入分析讲解
    Android权限机制深入分析讲解
    2022-11-11
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号