Kotlin与Android SDK 集成(KAD 05)

做者:Antonio Leivaandroid

时间:Dec 19, 2016app

原文连接:https://antonioleiva.com/kotlin-integrations-android-sdk/框架

 

使用Kotlin语言不单单简化你的代码,并且也能够简化从Kotlin调用Java代码。ide

 

这是怎样工做的?简单地使用一些通用结构就能够获得Kotlin的感受。函数

 

在这篇文章中,你将看到一些例子,它是怎样提高相同代码。它也预防Java代码包含模板部分。性能

 

Kotlin与Android SDK 集成

如Android 框架是基于Java库,以前咱们提到的一切关于Java应用都彻底适用于Android。学习

 

让咱们来看一些例子。ui

 

映射到属性的getter和setter方法

在前面几篇文章中,咱们已经看到getter和setter。这只是解释。spa

 

如咱们讨论的,Kotlin使用属性而不是 字段+getter+setter,赋值的方式与在Java public域中get同样。code

 

可是咱们也知道,简单的赋值能够执行代码,或咱们实现的自定义操做。

 

这类的规则是在Java中找到的任何setX和getX都被映射到Kotlin X。

 

例如,若是你在用TextView,你能够用相似属性的语句设置text:

1 val textView: TextView = ...
2 textView.text = "My Text"

 

固然,这能够应用到任何类。你用相同的方法,在Activity可以访问(例如)applicationContext 或者 layoutInflater:

1 layoutInflater.inflate(R.layout.view_item, parent)
2 val hello = applicationContext.getString(R.string.hello)

 

这不用担忧性能,它们事实上是映射到原始的getter和setter方法,因此与直接调用它们同样。

 

接口方法映射到Lambda表达式

 

这使人惊奇。对于Android的任何简单事情,不是要建立匿名类吗?而使用Kotlin,你不须要为Android侦听器这样作。

 

条件是这样:须要一个接口对于一个方法。典型的例子是View类的setOnClickListener。

 

你可以作这样简单的一句:

1 view.setOnClickListener { navigateToNextActivity() }

 

看多么容易?

 

若是你须要从原接口返回视图,你也能够覆盖它:

1 view.setOnClickListener { v -> navigateWithView(v) }

 

说明:这是什么怪结构?它是Lambda表达式,它表示函数的输入参数是箭头左边定义的方法。箭头右边是函数体,上一行是结果。咱们将在后续文章中讨论这些。

 

结论

在Kotlin项目中,集成其余Java库是很容易的,尤为是Android框架。

 

如何你要进一步学习Kolin,请加入这个列表,你就能够在你的收件箱中收到这些文章。

相关文章
相关标签/搜索