Kotlin for Android (Ⅱ)

上一篇中介绍了Kotlin的基本语法,这篇来讲一下在AndroidStudio中的具体使用方法。首先要说的是,截稿时我使用的AndroidStudio版本是1.2.1.1。

Step 1

需要先给AS安装Kotlin环境的必须插件。CMD+, 打开AS的 Preferences 界面搜索plugin,如下图,点击 Install JetBrains Plugin…

P1

然后搜索Kotlin,如图,KotlinKotlin Extensions For Android 这两个插件是今天的主角,前者是AS支持Kotlin编译的必须插件,后者稍后介绍。全部安装,重启AS。现在可以新创建一个项目,作为接下来步骤的例子。

P2

Step 2

在Kotlin插件更新之后,在新项目中构建Kotlin变得非常容易。如果安装成功,打开Code菜单会发现最后一行多了一个选项Convert Java File to Kotlin File,在MainActivity中选择此项,也可以选中MainActivity然后使用快捷键OPTION+SHIFT+CMD+J

P3

一键就把MainActivity.java转成了MainActivity.kt

P4

接下来打开Tools菜单会看到Kotlin子选单,选择Configure kotlin in project一键就可以让AS自动完成所有Kotlin的配置。这里需要注意,必须先有一个.kt文件AS才会认为需要配置Kotlin环境,从而自动完成配置。

P5

完成配置以后,会自动跳到app模块的build.gradle配置文件,其实配置Kotlin环境主要就是在build.gradle中添加一些配置,只不过AS可以一键自动完成,省去了很多麻烦,看下构建文件的变化,除了除了一些Kotlin所需的一些基本依赖意外,可以注意到:

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

由此可见,上篇文章中也曾提到过,在同一个项目中Kotlin可以和Java混写,单位了项目结构的清晰和可读性,最好把.kt文件都同意放在另一个目录中,由自动生成的配置可以看出,是与java平级的kotlin目录。但要注意的是,这一步AS目前还不会自动完成,因此我们需要手动创建目录和对应的包,并把.kt文件移过来。

P6

至此,其实使用Kotlin所需的一切就已经都就绪了,是不是很简单?但还必须要隆重介绍的是接下来这个插件。

Kotlin Extensions For Android

在Android开发中,所有开发者都知道findviewById()的麻烦。当然,你可以说你会用ButterKnife之类的注入库。但如果我告诉你现在连一行多余的代码都不用写了会怎样?好了,直接进入主题。

如果Step 1执行顺利,现在你的AS已经有了extension插件,继续以Step 2中新建的项目为例,现在要将MainActivity中将“Hello world!”改为“Hello Kotlin!”。首先打开activity_main.xml给TextView加上id。

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />

现在打开MainActivity.kt,加上依赖包:

import kotlinx.android.synthetic.activity_main.*

直接在onCreate()方法中修改TextView的显示的值:

override fun onCreate(savedInstanceState: android.os.Bundle?) {
super.onCreate(savedInstanceState)
setContentView(com.zeatual.myapplication.R.layout.activity_main)
textView.setText("Hello Kotlin!")
}

你没有看错,就是这么简单,我想至此大家应该自己也能明白这是怎么回事。只需要注意两点:

  1. kotlinx.android.synthetic.activity_main.* 中的 activit_main即为相应xml布局文件的名字;
  2. 甚至不用声明就可以直接调用的view的变量名即为xml文件中id的值。

关于kotlin最最基本的介绍就在这里告一段落。