美文网首页
Kotlin笔记(42) — Activity接收界面关闭返回值

Kotlin笔记(42) — Activity接收界面关闭返回值

作者: 奔跑的佩恩 | 来源:发表于2021-01-27 10:35 被阅读0次

    前言

    Android开发过程中,我们有时会遇到关闭第二个界面,然后把数据返回给第一个界面的情况。在kotlin中,这种关闭反传值的实现,也是用startActivityForResult方法。那么接下来,就让我们学习下关闭Activity接收返回值的实现吧。

    今天涉及知识

    1. kotlin实现关闭界面获取返回值
    2. 关闭界面获取返回值anko的简化实现
    3. 具体在Activity中的使用示例
    4. 效果图

    先来波效果图


    效果图.gif

    一. kotlin 实现关闭界面获取返回值

    以从MainActivity跳转到TempActivty界面,然后关闭TempActivty界面,给MainActivity界面回传值为例。
    MainActivity界面点击做跳转时,代码如下:

                   //跳转到TempActivity 
                   var intent:Intent=Intent(this@MainActivity,TempActivity::class.java)
                   startActivityForResult(intent,100)
    

    TempActivity界面关闭TempActivity时的操作如下:

                var user:User= User("测试",123)
                var intent: Intent =Intent()
                intent.putExtra("user",user)
                setResult(Activity.RESULT_OK,intent)
    
                //关闭当前界面
                finish()
    

    然后在MainActivity界面重写onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)接收返回值:

        override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
            super.onActivityResult(requestCode, resultCode, data)
    
            if(requestCode==100&&resultCode==Activity.RESULT_OK){
                var user:User=data!!.extras!!.getParcelable<User>("user") as User
                LogUtil.i("===返回值=====name=${user.name} age=${user.age}")
                toast("===返回值=====name=${user.name} age=${user.age}")
            }
        }
    

    二. 关闭界面获取返回值anko的简化实现

    anko加持下,TempActivity点击关闭和MainActivity界面接收返回值处理onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)方法中代码处理一样,没啥变化。主要看MainActivity跳转到 TempActivity界面的一段代码:

    相关文章

      网友评论

          本文标题:Kotlin笔记(42) — Activity接收界面关闭返回值

          本文链接:https://www.haomeiwen.com/subject/zadezktx.html