首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

KotlinKotlin 中使用 Lambda 表达式替代对象表达式原理分析 ( 尾随 Lambda - Trailing Lambda 语法 | 接口对象表达式 = 接口#函数类型对象 )

二、Kotlin 中使用 Lambda 表达式替代对象表达式原理 ---- 1、Lambda 替换对象表达式 在使用 Kotlin 开发时 , 经常遇到这种情况 , 最后一个函数是匿名内部类 , 匿名内部类只实现了一个函数...{ // 点击事件 } 2、原理分析 Kotlin 对象表达式 , object : View.OnClickListener { override fun onClick(view: View...) { // 点击事件 } } 对应就是 Java 匿名内部类 ; new View.OnClickListener() { @Override public void onClick...表达式 : // 添加按钮点击事件 , 设置一个 OnClickListener#onClick 函数类型 Lambda 表达式 // 作为点击事件...接口中 void onClick(View v); 函数类型 ; 如果 在 setOnClickListener 函数设置了 (View) -> Unit 类型 Lambda 表达式 , Kotlin

1.2K20

Kotlin安卓开发学习(4)

可以通过findViewById()方法获取在布局文件定义元素,这里我们传入R.id.button1来得到按钮实例,这个值是在first_layout.xml通过android:id属性指定。...findViewById()方法返回是一个继承自View泛型对象,因此Kotlin无法自动推导出它是一个Button还是其他控件,所以我们需要将button1变量显式地声明成Button类型。...得到按钮实例之后,我们通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器onClick()方法。...因此,弹出Toast功能当然是要在onClick()方法编写了。...使用Kotlin编写Android项目在app/build.gradle文件头部默认引入了一个kotlin-android-extensions插件,这个插件会根据布局文件定义控件id自动生成一个具有相同名称变量

53730

Kotlin了解一下!

提供基础库collectionList容器类,这里在声明里作为“接受者类型”,.作为声明关键字,swap是扩展函数名,其余和Kotlin声明一个普通函数并无区别。...================= 这里字节码已经相当直观,更令人惊喜是Android Studio还具备字节码转为JAVA文件能力,点击上面的Decompile按钮,可以得到如下JAVA代码...3.3 Kotlin严格区分了可能为空和不为空入参类型,同样也应用在扩展函数,为了声明一个可能为空接受者类型,可以参考如下例子: fun MutableList?....扩展函数实际应用 5.1 Utils工具类 在JAVA,我们习惯工具类命名成*Utils,例如FileUtils,StringUtils等等,著名java.util.Collections也是这么实现...Button") } 通常这些扩展函数可以放到基类,根据扩展函数作用域知识,我们可以在所有子类中都调用到这些方法,所以kotlinActivity可以写成: // Kotlin class MainKotlinActivity

67230

Kotlin入门(2)让App开发变得更容易

选择菜单后打开KotlinActivity创建页面,单击“Next”按钮进入创建信息填写页面,如下图所示: ?...这里填上Activity名称EasyActivity,对应布局文件名则为activity_easy,最后单击“Finish”按钮完成EasyActivity.kt创建。...比如现在有个名为tv_helloTextView控件,准备在代码把tv_hello显示文本改为“你好呀”,这用Java编码的话即是下面两行代码: TextView tv_hello =...Button是Android常用按钮控件,代码中经常要处理Button控件点击事件,下面的Java代码就是响应Button点击一个例子: final Button btn_click =...以上初步介绍了Kotlin几种常见用法,从下一篇文章开始,系统地讲解Kotlin基本语法知识。 点此查看Kotlin入门教程完整目录

1.2K30

Kotlin扩展函数与实现机制探索

提供基础库collectionList容器类,这里在声明里作为“接受者类型”,.作为声明关键字,swap是扩展函数名,其余和Kotlin声明一个普通函数并无区别。...================= 这里字节码已经相当直观,更令人惊喜是Android Studio还具备字节码转为JAVA文件能力,点击上面的Decompile按钮,可以得到如下JAVA代码...3.3 Kotlin严格区分了可能为空和不为空入参类型,同样也应用在扩展函数,为了声明一个可能为空接受者类型,可以参考如下例子: fun MutableList?....扩展函数实际应用 5.1 Utils工具类 在JAVA,我们习惯工具类命名成*Utils,例如FileUtils,StringUtils等等,著名java.util.Collections也是这么实现...Button") } 通常这些扩展函数可以放到基类,根据扩展函数作用域知识,我们可以在所有子类中都调用到这些方法,所以kotlinActivity可以写成: // Kotlin class MainKotlinActivity

2.3K72

Compose也能开发iOS了,快来体验~

同时Kotlin也表示将在2023年发布KMM稳定版本。 届时Compose-jb + KMM 实现Kotlin全平台。...搭建项目 创建项目 因为目前Compose for iOS阶段还在试验阶段,所以我们无法使用Android Studio或者IDEA直接创建Compose支持iOS项目,这里我们采用之前方法,先使用...gradle.properties,代码如下所示: compose.version=1.3.0 然后我们在shared模块build文件引用插件 plugins { kotlin("multiplatform...title}") } } } 分别运行iOS、Android程序,点击请求数据按钮,结果如下图: 这样我们就用一套代码,实现了在双端网络请求功能。...Compose-jb很久之前已经发了稳定版本只是Compose-iOS目前还没有开放出来,而KMM当前还处于试验阶段,不过在2023年KotlinRoadMapKotlin已经表示将会在23年发布第一个稳定版本

1.2K30

使用lombok@Builder注解:Error:java: 无法构造器应用到给定类型

背景 今天写项目用lombok@Builder注解,突然就报错咯。 ?...Error:(14, 1) java: 无法类 xxx 构造器 xxx 应用到给定类型; 需要: 没有参数 找到: java.lang.Integer,java.lang.String,java.lang.String...java.lang.String,java.util.Date,java.lang.String,java.util.Date 原因: 实际参数列表和形式参数列表长度不同 解决方案 builder默认用是全参数构造函数...它实现方式是会对标注这个注解所有成员变量,所以在使用@Builder构建时候如果不显式对某变量赋值的话默认就是null,因为这个变量此时是Builder类里,通过调用build()方法生成具体...T类则是通过私有构造函数来实例化,默认是全参数构造函数。

3.2K30

《Kotin 极简教程》第13章 使用 Kotlin 和 Anko Android 开发

onClick监听函数,因为我们是使用 Kotlin代码来设计视图,所以可以直接使用title变量(editText视图对象)。...在构建脚本添加kotlin-gradle-plugin依赖,使用 Kotlin 对应版本号。...visibility = View.VISIBLE } } 13.7 MainActivity.java 转成 Kotlin 代码 选中默认生成MainActivity.java, 我们使用...(TodoListFragment.kt:36) 提示: 更多关于 realm 数据库相关内容可参考 https://realm.io/docs/ 13.10 添加日程事件 现在我们点击添加日程浮层按钮...我们可以看下按钮控件定义地方。按钮有一个点击监听函数是定义在视图定义文件里面的。在定义按钮之前,有两个参数 title 和 content 方法 createTodoFrom 已经被调用了。

3.5K30

Kotlin入门(29)任务Runnable

,示例代码“handler.postDelayed(this, 1000)”意思是间隔一秒之后重复执行自身任务。...早在第一章,当时为了演示Kotlin代码间接性,举了一个例子“按钮对象.setOnClickListener { 点击事件处理代码 }”,这种写法正是采取了Lamba表达式,直接把点击事件接口唯一方法...onClick给省略掉。...下面是个任务对象改写后Kotlin代码:     private val counter = Runnable {         count++         tv_result.text =...匿名函数虽然无法重复调用,但是尚且允许在不同地方多次调用,而匿名实例只能在它待过地方昙花一现,因此还是要根据实际业务要求来选择合适任务方式。 点此查看Kotlin入门教程完整目录

1.9K20

Google Earth Engine(GEE)——用户界面的小按钮

在代码编辑器左侧ui文档选项卡探索API 全部功能。以下示例使用该ui包来说明用于制作小部件、定义用户单击小部件时行为以及显示小部件基本功能。...onClick(功能,可选): 单击按钮时触发回调。回调传递给按钮小部件。 禁用(布尔值,可选): 按钮是否被禁用。默认为假。...在这个例子,当按钮被点击时,函数会打印“Hello, world!” 到控制台。 请注意,与ee.*命名空间中对象不同,命名空间中对象 ui.*是可变。...因此,您不需要每次在对象上调用实例函数时都将对象重新分配给变量。简单地调用该函数改变(改变)小部件。...将以下代码附加到前面的示例会导致为按钮单击事件注册另一个回调:这里注意不需要新变量,直接原来变量进行拿过来直接用就好 // 在按钮上设置另一个回调函数。

10610

Compose跨平台第一弹:体验Compose for Desktop

入口处调用了App()方法,App方法绘制了一个按钮,运行程序,结果如下图所示。...添加两个输入框分别为学号、密码,添加一个登陆按钮,写法与AndroidCompose一致,代码如下所示。...添加头像 接着我们再来添加头像显示,我们下载好图片资源放在resources目录下 然后使用Image组件头像显示出来即可,代码如下所示。...实现一个网络请求功能 在 Kotlin 跨平台开发入门 我们借用「wanandroid」「每日一问」接口实现了一个网络请求,现在我们这部分功能移植到Desktop程序,网络请求框架仍然使用Ktor...写在最后 当然,在Compose For Desktop还有许多组件,比如Tooltips、Context Menu等等,这里无法一一介绍,需要我们在使用时候去实践,我们将在后面的N弹持续探索.

1.8K30

Kotlin入门(20)几种常见对话框

这个提醒对话框便是App开发常见AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...因此,Anko库将其做了进一步封装,给Context类添加了一个扩展函数,即“alert(消息内容, 消息标题) { 几个按钮及其点击事件 }”,简化后alert弹窗代码举例如下: alert...倘若仅仅是一个带箭头文本,毫无疑问使用文本视图TextView就可以了,箭头图标可以在布局文件通过drawableRight属性来指定。...编码,看起来十分矩,可是仍然显得拖泥带水,很简单功能也花费了六行Java代码。...,据此开发者能够progressDialog与indeterminateProgressDialog两个函数区分开。

1.6K10

Kotlin入门(20)几种常见对话框

这个提醒对话框便是App开发常见AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...因此,Anko库将其做了进一步封装,给Context类添加了一个扩展函数,即“alert(消息内容, 消息标题) { 几个按钮及其点击事件 }”,简化后alert弹窗代码举例如下:     alert...倘若仅仅是一个带箭头文本,毫无疑问使用文本视图TextView就可以了,箭头图标可以在布局文件通过drawableRight属性来指定。...编码,看起来十分矩,可是仍然显得拖泥带水,很简单功能也花费了六行Java代码。...,据此开发者能够progressDialog与indeterminateProgressDialog两个函数区分开。

2.7K30

kotlin Context使用详解

在activity级下使用this表示context kotlin取消了xxxActivity.this用法,所以我们可以在activity下新建一个Context属性——instance指向它本身...lazy { this } //这里使用了委托,表示只有使用到instance才会执行该段代码 val TAG:String = "ShareTempActivity" override fun onClick...标签语法从内部类使用外部类实例表示context 还可以使用kotlin标签,高级语法使用,在内部类里面或者当前activity上下文 class ShareTempActivity : AppCompatActivity...语法 } } } 补充知识:当你发现kotlinviewmodel里无法获得context时 你可以继承 AndroidViewModel方式来获得 ?...以上这篇kotlin Context使用详解就是小编分享给大家全部内容了,希望能给大家一个参考。

2.2K20
领券