如何在Kotlin中用一行代码声明startActivityForResult()?
在Kotlin中一行调用startActivityForResult的实现
没问题,这事儿超简单!你完全可以用一行代码完成startActivityForResult的调用,不过得先修正下示例里的小语法问题(多了一个闭合括号),正确的写法如下:
startActivityForResult(Intent(this@MainActivity2, MainActivity::class.java), 1)
快速拆解下这行代码的关键点:
this@MainActivity2:明确指定当前上下文是MainActivity2,避免在内部类、Lambda表达式这类场景下出现上下文混淆的问题MainActivity::class.java:传入你要启动的目标Activity的类对象,让系统知道要跳转到哪个页面1:这是请求码(requestCode),后续在onActivityResult方法里,你可以通过这个码区分不同的跳转请求,处理对应的返回结果
另外提个小提醒:如果你的项目用的是AndroidX或者Jetpack Compose,startActivityForResult已经被标记为废弃API了,官方更推荐用ActivityResultContracts来实现页面跳转并接收结果。但如果只是需要传统的一行调用方式,上面的代码在兼容旧版的项目里完全可以正常运行。
内容的提问来源于stack exchange,提问作者Ujjval
相关产品推荐
相关产品推荐

