前言
在Android
开发过程中,我们有时会遇到关闭第二个界面,然后把数据返回给第一个界面的情况。在kotlin
中,这种关闭反传值的实现,也是用startActivityForResult
方法。那么接下来,就让我们学习下关闭Activity
接收返回值的实现吧。
今天涉及知识
-
kotlin
实现关闭界面获取返回值 - 关闭界面获取返回值
anko
的简化实现 - 具体在Activity中的使用示例
- 效果图
先来波效果图
效果图.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
界面的一段代码:
网友评论