zoukankan      html  css  js  c++  java
  • Kotlin与Android SDK 集成(KAD 05)

    作者: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:

    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,请加入这个列表,你就可以在你的收件箱中收到这些文章。

  • 相关阅读:
    hdu 2444(二分图) The Accomodation of Students
    hdu 5532 (LIS) Almost Sorted Array
    hdu 1059 (多重背包) Dividing
    poj 2184(Cow Exhibition)
    hdu 2571 (命运) 那个配图女神
    poj 3624 && hdu 2955(背包入门)
    hdu 1257 && hdu 1789(简单DP或贪心)
    BBS(第一天)项目之 注册功能实现通过forms验证与 前端ajax请求触发查询数据库判断用户是否存在的功能实现
    Django之form模板的使用
    Django之Auth模块 实现登录,退出,自带session 与认证功能的一个重要的模块
  • 原文地址:https://www.cnblogs.com/figozhg/p/6238177.html
Copyright © 2011-2022 走看看