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 ...
- 曾经你是风里雨里快速划过的闪电,曾经你是果敢坚毅力挽狂澜的船长。你是恶贯满盈的海盗,总有人追随你的传说。当黑珍珠成...