本文是作者阅读How to Use Kotlin in Your Android Projects,按照文章实现了一遍,并将实现过程中碰到的坑总结出来的文章。
简介
Kotlin是由JetBrains设计的开源编程语言,它在java开发者圈子中越来越受欢迎,更有甚者称之为java的继承者。相比于java,Kotlin提供了丰富的开发经验,因为他更加现代、简洁且富有表现力。
如果你正在为Android开发寻找一种替代语言,你可以试一试Kotlin,它可以单独使用,也可以和java混合一起使用。阅读本文,你将会了解如何在Android Studio的工程中使用Kotlin和Kotlin plugings。
前期准备
- 最新版本的Android Studio
- 对Kotlin语法的基本了解
如果你对Kotlin编程语法不是很熟悉,推荐阅读Kotlin reference的Getting Started章节,来尽快上手。
1. 安装Kotlin Plugins
在Android Studio的快速启动菜单,选择Config -> Plugins
快速开始菜单
在下一屏,点击Install JetBrains plugin...
转存失败重新上传取消
从列表中选择Kotlin Extensions For Android,并点击Install Plugin进行安装
转存失败重新上传取消
因为这里安装的plugin是依赖于Kotlin plugin的,所以安装上面的plugin的时候会询问是否要一起安装Kotlin plugin。这里我们只要点击Yes就可以了。
转存失败重新上传取消
当安装完成后,重启Android Studio让插件都生效。
2.生成一个Kotlin类型的Activity
在Android Studio中选中src的目录,右击选择New > Kotlin File
转存失败重新上传取消
在弹出的dialog中输入Activity的名字,并选择类型为Class
当class建立的时候,会有弹框提示我们配置工程支持Kotlin。
这里只要点击OK即可,使用默认配置,最后同步一下build.gradle文件即可。
3.使用Kotlin
Activity中的代码如下
package com.example.zr.kotlindemo
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val myMessage = TextView(this)
myMessage.setText("Hello Kotlin");
setContentView(myMessage);
}
}
在AndroidManifest.xml中的设置与使用java编写的的方式没有区别。
4.使用Kotlin Android Extensions
Kotlin Android Extensions是一个让你可以像使用属性一样调用在XML文件中声明的控件,这样你就再也不需要调用findViewById了。
为了使用这个特性,我们需要在app的module依赖中添加如下依赖:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
然后新建一个新的Activity为MainActivity.kt,它的布局文件activity_main.xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/myMessage" />
<Button
android:id="@+id/myButton"
android:text="go to next"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
然后Activity中的代码如下:
package com.example.zr.kotlindemo
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myMessage.setText("Hello Kotlin XML");
myButton.setOnClickListener {
startActivity(Intent(this, Main2Activity::class.java));
}
}
}
运行截图如下:
注意,作者按照文章步骤在此碰到一个编译错误,报Unresolved reference: kotlinx
错误。这里可能是Android Studio的一个bug,需要我们手动在app的build.gradle文件中添加一句语句:apply plugin: 'kotlin-android-extensions'
。具体问题解释可以看这里。
5.将java文件转换为Kotlin文件
这个最简单,只需要几步操作就可以了。选中我们要转换的文件,然后选择Code > Convert Java File to Kotlin File,如下图:
转换成功后,请注意文件后缀也从.java变为.kt了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)