栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android的startActivityForResult被弃用了,替代方案出炉

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android的startActivityForResult被弃用了,替代方案出炉

1、Activity01

registerForActivityResult()方法的返回值是一个ActivityResultLauncher对象,里边有个launch()方法,直接调用,然后向里传参数intent就可以了

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        var binding = ActivityMainBinding.inflate(layoutInflater)

        setContentView(binding.root)

        val startActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){
            if (it.data!=null&&it.resultCode== Activity.RESULT_OK){
                var params = it.data?.getStringExtra("back_data")?.let {
                        result -> Toast.makeText(this,result,Toast.LENGTH_SHORT).show()
                }
            }else{
                Toast.makeText(this,"获取不到数据",Toast.LENGTH_SHORT).show()
            }
        }

        binding.button01.setOnClickListener {
            val intent = Intent(this,SecondActivity::class.java)
            startActivity.launch(intent)
        }
    }
    
}

2、Activity02

class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.second_activity)
        val intent = Intent()
        intent.putExtra("back_data","hello This is a message for backData")
        setResult(Activity.RESULT_OK,intent)
        finish()
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号