Intent在Activity间传递数据

传递简单数据给下一个Activity

在本Activity中构建intent

//send data to activity2
            R.id.item_sendData -> {
                val intent = Intent(this,MainActivity2::class.java)
                intent.putExtra("name","张三")
                intent.putExtra("number","123456")
                startActivity(intent)
            }

在目标Activity中取出数据

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        val name = intent.getStringExtra("name")
        val number = intent.getStringExtra("number")
        Log.d(Tag,"$name's number is $number")
    }

结果

2022-03-23 22:10:12.467 22547-22547/com.example.intentdatatest D/MainActivity: 张三's number is 123456

从目标Activity中取回数据

同样先在本Activity中构建intent,跳转到目标Activity

//get data from activity3
            R.id.item_getData -> {
                val intent = Intent(this,MainActivity3::class.java)
                startActivityForResult(intent,1)
            }

然后在目标Activity中用intent构建返回内容,用setresult()返回数据

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main3)
        val intent = Intent()
        intent.putExtra("returnData1","yes")
        intent.putExtra("returnData2","no")
        setResult(RESULT_OK,intent)
        finish()
    }

重写back响应保证逻辑的执行

override fun onBackPressed() {
        val intent = Intent()
        intent.putExtra("returnData1","yes")
        intent.putExtra("returnData2","no")
        setResult(RESULT_OK,intent)
        finish()
    }

在原Activity中取出数据

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        when(requestCode){
            1 -> {
                if (resultCode == RESULT_OK){
                    //返回数据成功的处理逻辑
                    Log.d(Tag,"get data form activity3 successful!")
                }
            }
        }
    }

结果

2022-03-23 22:10:20.059 22547-22547/com.example.intentdatatest D/MainActivity: get data form activity3 successful!
2022-03-23 22:10:25.798 22547-22547/com.example.intentdatatest D/MainActivity: get data form activity3 successful!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值