kotlin 定义接口并实现回调的例子
作者:yinianjian2017 发布时间:2022-12-06 14:30:19
标签:kotlin,接口,回调
开发环境 android studio 3.0.1 已支持 kotlin
1、定义接口
interface CallBack{
fun callBack(info : String)
}
2、实现接口 : 为继承\实现
class CallBacks : CallBack{
override fun callBack(info : String){
Log.d("MainApp","current info $info")
}
}
或者
private var mCallBack = object : CallBack{
override fun callBack(info : String){
Log.d("MainApp","current info $info")
}
}
3、定义带回调方法的函数
private fun initData(callBack : CallBack):Boolean{
callBack?.callBack("我来自回调")
return true
}
4、实现回调,调用方式与实现接口对应
initData(CallBacks())
或者
initData(mCallBack)
打印结果:
补充知识:Kotlin调用接口样例(如新建接口作为回调)
背景
kotlin里调用某个java定义的接口,方式非常简单,但是调用kotlin定义的却比较麻烦。
如textView.setOnClickListener { Toast.makeText(applicationContext, "test", Toast.LENGTH_SHORT).show() }
解决方案
接口定义样例:
interface OnShakeListener {
fun onShake()
}
调用样例:
sensorHelper.setOnShakeListener(object : OnShakeListener {
override fun onShake() {
Toast.makeText(applicationContext, "test", Toast.LENGTH_SHORT).show()
}
})
来源:https://blog.csdn.net/yinianjian2017/article/details/80421541


猜你喜欢
- 背景笔者使用 Spring Security 5.8 时,发现网上很多教程所教的 Spring Security 配置类 SecurityC
- 依赖<dependency> <groupId>com.baomidou</groupId> <a
- 一Map特性:1 Map提供一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;2
- 1.什么是mybatis逆向工程在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了
- 前段时间在写直播的时候,需要观众在看直播的时候点赞的效果,在此参照了腾讯大神写的点赞(飘心动画效果)。下面是效果图:1.自定义飘心动画的属性
- 话不多说,请看代码:public Map<String, Object> getWeeklyBySearch(final Map
- 本文实例为大家分享了Android实现接近传感器的具体代码,供大家参考,具体内容如下1.接近传感器检测物体与听筒(手机)的距离,单位是厘米。
- 一、文件存储特点:openFileInput()和openFileOutput()读取设备上的文件。优点:适用于存储大量的数据,可以存储图片
- 一:大小比较:使用 String.compareTo 方法compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码
- 1、通过WindowManager获取DisplayMetrics dm = new DisplayMetrics();getWindowM
- 声明式事务很方便,尤其纯注解模式,仅仅几个注解就能控制事务了思考:这些注解都做了什么?好神奇!@EnableTransactionManag
- 一、依赖注入(DI)依赖注入听起来很高深的样子,其实白话就是:给属性赋值。一共有两种方法,第一是以构造器参数的形式,另外一种就是以setti
- 本文实例为大家分享了Android自定义StepView配送进度展示的具体代码,供大家参考,具体内容如下效果图使用可在layout文件下设置
- 今天来了一个问题:软键盘无法弹出。分析后是因为系统判断当前有外接硬键盘,就会隐藏软键盘。但实际情况并不是这么简单,该问题只有在特定条件下偶现
- 一、需要导入的jar1.commons-collections4-4.1.jar2.poi-3.17-beta1.jar3.poi-ooxm
- 本文实例讲述了Android开发之DatePickerDialog、TimePickerDialog时间日期对话框用法。分享给大家供大家参考
- 1. 编译错误//代码1public static void test() throws Exception {throw ne
- 前言近期一直在忙项目,我也是打工仔。不多说,我们开始玩一玩seata。什么都不说,我们按照惯例,先上一个图(图里不规范的使用请忽略):简单一
- ${} 和 #{} 都是 MyBatis 中用来替换参数的,它们都可以将用户传递过来的参数,替换到 MyBatis 最终生成的 SQL 中,
- ResultSet 动态获取列名和值仅供自己方便查阅,无其他用途ResultSet result = null; //前边SQL查询结果,这