安装Kotlin插件
打开Preferences (OSX) or Settings (Windows/Linux) > Plugins > Browse Repositories
,输入Kotlin
并安装,这一操作需要重启Android Studio
新建项目
不在赘述
配置Kotlin插件
双击Shift
搜索Kotlin
,选择Configure Kotlin
选择Android Configurator
选择使用Kotlin
的模块和Kotlin
的版本
根目录下的gradle文件增加了以下内容
buildscript {
ext.kotlin_version = '1.1.1'
...
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...
}
}
app模块下的gradle文件增加了以下内容
apply plugin: 'kotlin-android'
...
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
...
}
repositories {
mavenCentral()
}
转换Kotlin
双击Shift
搜索Convert Java Kotlin
,选择Convert Java File to Kotlin File
package me.zongren.kotlindemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
更改为
package me.zongren.kotlindemo
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
创建Kotlin类
package me.zongren.kotlindemo
import android.app.Activity
import android.widget.Toast
/**
* Created by zongren on 2017/4/21.
*/
class HelloWorld {
companion object {
fun speak(activity: Activity, word: String = "What do you want me to say?") {
Toast.makeText(activity, word, Toast.LENGTH_SHORT).show()
}
}
}
调用speak
方法
HelloWorld.speak(this)
HelloWorld.speak(this,"Are you ok?")
官方文档
更多使用方法参见官方文档
使用kotlin-android-extensions插件(可选)
在app
模块下的build.gradle
文件增加插件
apply plugin: 'kotlin-android-extensions'
在MainActivity
中导入头文件
import kotlinx.android.synthetic.main.<layout>.*
例如MainActivity
的布局文件名为activity_main.xml
,那么导入的文件为kotlinx.android.synthetic.main.activity_main.*
,然后就可以直接使用activity.textView
获取一个id
为textView
的TextView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
HelloWorld.speak(this)
HelloWorld.speak(this,"Are you ok?")
this.textView.setText("This is a textView")
}
}