在Android Studio 3中使用Kotlin

嘎子 Android, Kotlin 2017-05-26 1,165 次浏览 , , 没有评论

Android Studio 3中让Kotlin成为了默认语言,所以自己迫不及待的试用了一下,结果还是很让人激动的。

先分享一个Android Studio的下载地址:获取 Android Studio 预览版 | Android Studio。这个地址是Google专门来给中国使用的,不用翻墙。

我先建了一个工程,当然有新建工程的时候要勾选“Include Kotlin Support”,然后新建了工程后打开主文件,发现并没有什么区别嘛!特意对比了一下,第一个是Kotlin的类,第二个是Java的类:

Kotlin类

Java类

区别主要有以下几点:

1、扩展名不同了,毕竟Kotlin嘛,扩展名变成了kt,而不是java。

2、在java中为 Bundle savedInstanceState?而Kotlin中为 savedInstanceState: Bundle??。这一句中的学问就大了,也说明了两个问题。

a、Kotlin中类型是放在参数名后面的。如在Java等很多语言中声明一个整型的变量是这样的:

Int i = 100;,但在Kotlin里面是 var i:Int = 100?。为什么这么做呢,有很多说法,我个人觉得是有利于类型推测。关于类型推测,后面也会再讲。

b、Bundle后面有个?如果大家之前使用过C#大家可能见过这个东东。这个东东就是表示这个类型可以为null。举个栗子,你定义了一个人是不是党员这样一个属性,最合适的当然是bool类型的,但这也有个问题:是不是党员这个属性并没有写在脸上,所以很多人你并不知道他是不是党员,此时你怎么赋值,否吗???此时?就很有用了,此时bool值就有三种状态,是、否和未赋值。这个是不是很有用?这种特性还有一个好处,你可以在没有赋值之前就使用这个变量,是不是觉得这个能够解决“NullPointer”异常!

3、每一行后面的;(分号)没有了!

其实在Gradle文件中也有一些差别的,其实我们并不关心,我这里就不详细说了,如果大家有兴趣可以自己研究一下,其实就是增加了一些Kotlin的支持。

好,下面我们就开始做一件非常简单的事,就是给MainActivity增加一个Button,然后增加一个事件,然后显示一个简单的消息。

layout文件我就不贴出来了,非常简单。先用java写了一个事件监听(Button的名字叫btn_java):

看起来还挺简单的嘛,下面再看看Kotlin的做法:

还不够简单?大家也这么觉得,当然还有更优雅的方法:

这个toast是什么鬼?当然这是有定义的:

这个方法就有讲究了,为什么是AppCompatActivity.toast ,和C#对比,又很快就明白了,是对AppCompatActivity的一个扩展,这个就叫做扩展函数

扩展函数有什么用呢?再给大家举个栗子:自己要写一个TCP通信的类,Kotlin本身提供的TCP通信类非常完善,所以我就想使用这个类,但是每一次使用我都要初始化,例如设置网络环境,端口,超时等等,之前我们一般怎么做呢,我的做法是用类似于Helper的函数,有个扩展函数我们就有了新的选择。使我们可以像使用类本身的函数一样使用自己定义的函数。

就说到这里吧,其实还有更精彩的Lambda函数的使用,限于篇幅,这里就不多说了。

最后,把自己这个项目分享出来:MyApp

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 在Android Studio 3中使用Kotlin

相关主题

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz
回顶部