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))
}
}
}
kotlin 接口回调的优化
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 注:适用于回调接口单个方法 1.方法无参无返回值回调 (1)声明回调接口,以及初始化接口 (2)接口方法的调用 (...
- 假如要实现这样的一个功能,基于高德地图API搜索用户指定的地点,然后获取周边1公里的所有酒店。我们都知道,高德地图...
- 转自:交互进阶 人脸识别早就不是什么新事物,但是最近又被苹果炒热起来。对于 iPhone X 对 Face ID ...
- 曾经你是风里雨里快速划过的闪电,曾经你是果敢坚毅力挽狂澜的船长。你是恶贯满盈的海盗,总有人追随你的传说。当黑珍珠成...