class MainActivity : FragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//以下对应java中的 view设置setOnClickListener各种写法
//实现一个接口回调 不使用lambda实现方式,但是如果接口中有多个回调 适合这个写法
textView6.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
startActivity(Intent(applicationContext, ArticleListActivity::class.java))
}
})
//回调函数的Kotin的lambda的简化 在lambda表达式中 只支持单抽象方法模型,
// 就是接口只有一个抽象方法,多个回调不支持
//This inspection detects a lambda expression inside parentheses which can be moved outside of them
textView1.setOnClickListener({ view: View ->
startActivity(Intent(this, ArticleListActivity::class.java))
})
//This inspection detects a lambda expression inside parentheses which can be moved outside of them
textView2.setOnClickListener({ view ->
startActivity(Intent(this, ArticleListActivity::class.java))
})
//This inspection detects a lambda expression inside parentheses which can be moved outside of them
//说明了view参数没使用的时候是可以直接去掉的
textView3.setOnClickListener({
startActivity(Intent(this, ArticleListActivity::class.java))
})
//说明最后一个参数是函数的话,直接可以把{}括号的实现 提到()外面
textView4.setOnClickListener() {
startActivity(Intent(this, ArticleListActivity::class.java))
}
// 最简洁的自写法
textView5.setOnClickListener {
startActivity(Intent(this, ArticleListActivity::class.java))
}
}
}
网友评论