Kotlin与Android SDK 集成(KAD 05)
时间:Dec 19, 2016
原文链接:https://antonioleiva.com/kotlin-integrations-android-sdk/
使用Kotlin语言不仅仅简化你的代码,而且也可以简化从Kotlin调用Java代码。
这是怎样工作的?简单地使用一些通用结构就可以得到Kotlin的感觉。
在这篇文章中,你将看到一些例子,它是怎样提升相同代码。它也预防Java代码包含模板部分。
Kotlin与Android SDK 集成
如Android 框架是基于Java库,之前我们提到的一切关于Java应用都完全适用于Android。
让我们来看一些例子。
映射到属性的getter和setter方法
在前面几篇文章中,我们已经看到getter和setter。这只是解释。
如我们讨论的,Kotlin使用属性而不是 字段+getter+setter,赋值的方式与在Java public域中get一样。
但是我们也知道,简单的赋值可以执行代码,或我们实现的自定义操作。
这类的规则是在Java中找到的任何setX和getX都被映射到Kotlin X。
例如,如果你在用TextView,你可以用类似属性的语句设置text:
val textView: TextView = ...
textView.text = "My Text"
当然,这可以应用到任何类。你用相同的方法,在Activity能够访问(例如)applicationContext 或者 layoutInflater:
layoutInflater.inflate(R.layout.view_item, parent)
val hello = applicationContext.getString(R.string.hello)
这不用担心性能,它们事实上是映射到原始的getter和setter方法,所以与直接调用它们一样。
接口方法映射到Lambda表达式
这令人惊奇。对于Android的任何简单事情,不是要创建匿名类吗?而使用Kotlin,你不需要为Android侦听器这样做。
条件是这样:需要一个接口对于一个方法。典型的例子是View类的setOnClickListener。
你能够做这样简单的一句:
view.setOnClickListener { navigateToNextActivity() }
看多么容易?
如果你需要从原接口返回视图,你也可以覆盖它:
view.setOnClickListener { v -> navigateWithView(v) }
说明:这是什么怪结构?它是Lambda表达式,它表示函数的输入参数是箭头左边定义的方法。箭头右边是函数体,上一行是结果。我们将在后续文章中讨论这些。
结论
在Kotlin项目中,集成其他Java库是很容易的,尤其是Android框架。
如何你要进一步学习Kolin,请加入这个列表,你就可以在你的收件箱中收到这些文章。
Kotlin与Android SDK 集成(KAD 05)的更多相关文章
- 【笔记】android sdk集成的eclipse中导入项目
android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...
- 用Kotlin实现Android定制视图(KAD 06)
作者:Antonio Leiva 时间:Dec 27, 2016 原文链接:https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关c ...
- 人脸识别Android SDK集成
目前我们的应用内使用了ArcFace 的人脸检测功能,这里就和大家分享一下我们的集成过程和一些使用心得~ 集成ArcFace FD 的集成过程非常简单在 ArcFace FD 的文档上有说明支持的系统 ...
- 极光推送android sdk集成步骤
推送,用极光,大家都说好,哈哈. 进入正题: 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(基本上现在都已经支持了,循例说一下) , ...
- Android SDK教程
Android SDK 网络问题解析 Android 客户端网络不稳定,会导致App 有时候无法及时收到 Push 消息. 很多开发者认为这是因为 JPush 推送不稳定.延迟,甚至有时候认为 JPu ...
- Kotlin的android扩展:对findViewById说再见(KAD 04)
作者:Antonio Leiva 时间:Dec 12, 2016 原文链接:http://antonioleiva.com/kotlin-android-extensions/ 你也许已厌倦日复一日使 ...
- 用Kotlin创建第一个Android项目(KAD 01)
原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...
- Android Studio集成百度地图SDK
1.建议先阅读百度地图官方的继承指南,针对了Eclipse和Android Studio. 百度官方集成指南 2.下载百度地图SDK Android SDK v4.1.1 下载有两种: 1.一键下载( ...
- Android消息推送 SDK 集成指南
使用提示 本文是 Android SDK 标准的集成指南文档. 匹配的 SDK 版本为:r1.8.0及以后版本. 本文随SDK压缩包分发.在你看到本文时,可能当前的版本与本文已经不是很适配.所以建议关 ...
随机推荐
- SQL Server中的高可用性(2)----文件与文件组
在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...
- Fis3的前端工程化之路[三大特性篇之内容嵌入]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- 前端框架 EasyUI (0) 重新温习(序言)
几年前,参与过一个项目.那算是一个小型的信息管理系统,BS 结构的,前端用的是基于 jQuery 的 EasyUI 框架. 我进 Team 的时候,项目已经进入开发阶段半个多月了.听说整个项目的框架是 ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- PHP验证用户登录例子-学习笔记
1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- iOS逆向工程之Hopper+LLDB调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...
- javascript设计模式:策略模式
前言 策略模式有效利用组合.委托.多态等技术和思想,可以有效避免多重条件选择语句. 策略模式对开放-封闭原则提供了很好的支持,将算法封装在strategy中,使得他们易于切换.理解.扩展. 策略模式中 ...
- [原]Redis主从复制各种环境下测试
Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...
- SHA-1算法
SHA-1.h #ifndef _SHA1_H #define _SHA1_H #include<iostream> using namespace std; //4个函数 #define ...