startActivityForResult 用kotlin写法
时间: 2024-01-09 13:19:37 浏览: 92
startActivityForResult使用方式
startActivityForResult是一个用于启动一个Activity并等待该Activity返回结果的方法。在Kotlin中,可以使用回调形式使用startActivityForResult方法,配合Kotlin的语法,可以很简单的处理startActivityForResult的返回时机和返回数据。使用方式如下:
button1.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
startActivityForResult(intent, 1)
}
其中,this表示当前Activity的上下文,SecondActivity::class.java表示要启动的Activity的类名,1表示请求码,用于在返回结果时区分不同的请求。
在启动的Activity中,可以通过setResult方法设置返回结果,并在finish方法中结束该Activity,如下所示:
val intent = Intent()
intent.putExtra("data", "Hello World")
setResult(Activity.RESULT_OK, intent)
finish()
在返回结果的Activity中,可以在onActivityResult方法中获取返回的结果,如下所示:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
val result = data?.getStringExtra("data")
// 处理返回的结果
}
}
其中,requestCode表示请求码,resultCode表示返回结果的状态码,data表示返回的数据。可以根据requestCode和resultCode来判断返回的结果是否符合预期,并根据data来获取返回的数据。
阅读全文