作者:Antonio Leiva

时间: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)的更多相关文章

  1. 【笔记】android sdk集成的eclipse中导入项目

    android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...

  2. 用Kotlin实现Android定制视图(KAD 06)

    作者:Antonio Leiva 时间:Dec 27, 2016 原文链接:https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关c ...

  3. 人脸识别Android SDK集成

    目前我们的应用内使用了ArcFace 的人脸检测功能,这里就和大家分享一下我们的集成过程和一些使用心得~ 集成ArcFace FD 的集成过程非常简单在 ArcFace FD 的文档上有说明支持的系统 ...

  4. 极光推送android sdk集成步骤

    推送,用极光,大家都说好,哈哈. 进入正题: 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(基本上现在都已经支持了,循例说一下)  , ...

  5. Android SDK教程

    Android SDK 网络问题解析 Android 客户端网络不稳定,会导致App 有时候无法及时收到 Push 消息. 很多开发者认为这是因为 JPush 推送不稳定.延迟,甚至有时候认为 JPu ...

  6. Kotlin的android扩展:对findViewById说再见(KAD 04)

    作者:Antonio Leiva 时间:Dec 12, 2016 原文链接:http://antonioleiva.com/kotlin-android-extensions/ 你也许已厌倦日复一日使 ...

  7. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  8. Android Studio集成百度地图SDK

    1.建议先阅读百度地图官方的继承指南,针对了Eclipse和Android Studio. 百度官方集成指南 2.下载百度地图SDK Android SDK v4.1.1 下载有两种: 1.一键下载( ...

  9. Android消息推送 SDK 集成指南

    使用提示 本文是 Android SDK 标准的集成指南文档. 匹配的 SDK 版本为:r1.8.0及以后版本. 本文随SDK压缩包分发.在你看到本文时,可能当前的版本与本文已经不是很适配.所以建议关 ...

随机推荐

  1. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  2. FREERTOS 手册阅读笔记

    郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...

  3. 用html5的canvas和JavaScript创建一个绘图程序

    本文将引导你使用canvas和JavaScript创建一个简单的绘图程序. 创建canvas元素 首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面. <canvas ...

  4. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  5. 基于ASP.NET/C#开发国外支付平台(Paypal)学习心得。

        最近一直在研究Paypal的支付平台,因为本人之前没有接触过接口这一块,新来一家公司比较不清楚流程就要求开发两个支付平台一个是支付宝(这边就不再这篇文章里面赘述了),但还是花了2-3天的时间通 ...

  6. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  7. javascript工厂模式和构造函数模式创建对象

    一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创 ...

  8. Android带加减的edittext

    看了网上这样自带加减的edittext写得好复杂,还有各种监听事件,我觉得没有必有.于是我自己写了一个. 我这个edittext仅仅限制整数,每次加减1. public class TestEditT ...

  9. 从贝叶斯到粒子滤波——Round 1

    粒子滤波确实是一个挺复杂的东西,从接触粒子滤波到现在半个多月,博主哦勒哇看了N多篇文章,查略了嗨多资料,很多内容都是看了又看,细细斟酌.今日,便在这里验证一下自己的修炼成果,请各位英雄好汉多多指教. ...

  10. mono for android 读取网络远程图片

    布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=& ...