启动Activity的最佳写法
这里我们要用到一种新语法
companion object
class SecondActivity : BaseActiviyt() {
companion object {
fun actionStart(context: Context, data1: String, data2: String) {
//Context全局信息接口 功能很多比如启动Activity,还有弹出Dialog
//我们这里是启动还要传数据
//Context类型可以理解为当前活动要去启动哪一个活动或则哪一个服务等,在启动的同时我还要做一件事
val intent = Intent(context, SecondActivity::class.java)
intent.putExtra("haah1", data1)
intent.putExtra("haah2", data2)
//putExtra把数据暂停到Intent中接收两个参数,一个是键,一个是取值
context.startActivity(intent)
}
}
}
context:理解为当前Activity
class FirstActivity : BaseActiviyt() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.first_layout)
button1.setOnClickListener {
SecondActivity.actionStart(this,"da","db")
}
}
}
加入打印代码
class SecondActivity : BaseActiviyt() {
companion object {
fun actionStart(context: Context, data1: String, data2: String) {
//Context全局信息接口 功能很多比如启动Activity,还有弹出Dialog
//我们这里是启动还要传数据
//Context类型可以理解为当前活动要去启动哪一个活动或则哪一个服务等,在启动的同时我还要做一件是
val intent = Intent(context, SecondActivity::class.java)
intent.putExtra("haah1", data1)
intent.putExtra("haah2", data2)
//putExtra把数据暂停到Intent中接收两个参数,一个是键,一个是取值
context.startActivity(intent)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val etxtData1=intent.getStringExtra("haah1")
val etxtData2=intent.getStringExtra("haah2")
Log.d(etxtData1,etxtData2!!)
}
}
这里的intent写法 其实就是获取启动Activity的Intent,这里面正好有数据,我们就用getStringExtra方法取值
打印结果