Java中,Activity的跳转,分三种场景:
一是不带数据的跳转;
二是带参数的跳转;
三是带返回数据的跳转。
但在Kotlin里面,分4种跳转场景:
一是传统的Intent跳转;
二是利用Anko库不带Intent的跳转,
三是是否带参跳转,
四是带返回数据的跳转。
每种跳转的例子如下:
a、传统的Intent跳转
var parseData=ParseDataBean("touruliang","200","xiaoxioa","700","daixoa", "jiaohushuliang")
var intent = Intent(this, LearnStartActivity::class.java)
intent.putExtra("parseData", parseData)
startActivity(intent)
b、利用Anko库不带Intent的跳转
var parseData=ParseDataBean("touruliang","200","xiaoxioa","700","daixoa", "jiaohushuliang")
startActivity<LearnStartActivity>(Pair("parseData", parseData))
c、是否带参跳转
带参跳转见上面a和b,现在说不带参跳转,很简单,一行代码:
startActivity<LearnStartActivity>()
d、带返回数据的跳转
1)、跳转:
var intent = Intent(this, LearnStartActivity::class.java)
intent.putExtra("parseData", parseData)
startActivityForResult(intent, 0xff99)
2)、返回:
var intent = Intent()
intent.putExtra("returnData", "晓晓的妈妈真的好热情啊。晓晓9号能过来吗?")
setResult(0xffaa, intent)
finish()
3)、接收数据:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode != 0xff99 || resultCode != 0xffaa){
return
}
var returnData = data?.getStringExtra("returnData")
logging(returnData)
}