Android Studio 3.0 完整的支持 Kotlin,因此下面的这些操作都很方便。包括通过 Kotlin 文件创建新的项目,添加新的 Kotlin 文件到已有项目中,或者将 Java 语言代码转为 Kotlin。同时,你也可以针对 Kotlin 代码来使用所有 Android Studio已有的工具,如自动补全,lint 检查,重构,调试等。
这篇文章将介绍如何再 Android Studio 中开始使用 Kotlin。
创建新项目来使用 Kotlin
在新项目中使用 Kotlin,仅需要在新项目向导中一个额外的点击:
- 在 Android Studio 中,点击文件(File) > 新建(New) > 新项目(New Project)。或者你刚刚打开 Android Studio,看到了 Android Studio 的欢迎窗口,那么点击开始一个新的 Android Studio 项目。
- 在第一个屏幕,选中包含 Kotlin 支持(Include Kotlin Support)。就只有这一个唯一的区别。
- 点击下一步(Next)并继续后面的向导直到结束。
当你选择了一个 Activity 模板,它将以 Kotlin 代码提供。现在,至于一些手机和平板的模板提供了惯用的 Kotlin 代码。其他的则是从 Java 模板自动转化为 Kotlin。你仍然得到的是 Kotlin 代码,但是某些代码没有使用 Kotlin 最佳的语言特性。
与 Java 文件一样,Kotlin 文件被保存在 src/main/java/
目录下。
在现有项目中添加 Kotlin
如果你想要添加 Kotlin 代码到现有的项目中,简单点击文件(File) > 新建(New),并从中选择一个 Android 模板。如果你没有在菜单中看到模板列表,需要先打开项目(Project)窗口,并选择你的 App 模块。
在展示的向导中,为源代码(Source Language)选择 Kotlin。
继续后面的向导,直到结束。
此外,你可以点击文件(File) > 新建(New) > Kotlin文件/类(Kotlin File/Class)来创建基础文件。新建Kotlin文件/类窗口提供了不同文件类型的选择,但不用太在意你选择了那种文件。因为当你以后改变了声明方式, Kotlin 会自动切换文件类型。
默认情况下,新的 Kotlin 文件会被保存在 src/main/java/
中。你会发现 Kotlin 和 Java 文件在一个位置。如果你更喜欢将 Kotlin 文件与 Java 文件分开,你可以把 Kotlin 文件放到 src/main/kotlin/
目录下。这样做,你需要修改 sourceSets 的配置来包含该目录。
1 | android { |
转换现有的 Java 代码为 Kotlin 代码
在 Android Studio 3.0 中,打开 Java 文件,并且选择代码(Code) > 转换 Java 文件为 Kotlin 文件。
或者创建新的 Kotlin 文件(File > New > Kotlin File/Class),然后粘贴 Java 代码到该文件里,当弹出提示时,点击是来转换代码到 Kotlin。你可以选中下次不再显示该对话框来取消同样操作时的提示。
Kotlin 如何来使用 Android API
Kotlin 提供了与 Java 语言完整的互操作性,所以调用 Android API 看起来与 Java 代码几乎一样。此外,你还可以将这些方法调用与Kotlin的语法特征相结合。
下面是一些如何在 Kotlin 中调用 Android API 的例子,同时对比 Java 的相同代码。
在 Kotlin 中声明 Activity
1 | class MyActivity : AppCompatActivity() { |
在 Java 中声明 Activity
1 | public class MyActivity extends AppCompatActivity { |
Kotlin 中的 On-click listener
1 | val fab = findViewById(R.id.fab) as FloatingActionButton |
Java 中的 On-click listener
1 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); |
Kotlin 中的 Item click listener
1 | private val mOnNavigationItemSelectedListener |
Java 中的 Item click listener
1 | private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener |
如果你还没有入坑,那我告诉你,是时候学习 Kotlin 了。