背景
之前就看到過Kotlin這一門語言,也有不少大神和愿意走在知識最前沿的哥哥姐姐們說這一門語言有多么多么的好语淘,但是本人并沒有去了解他诲宇,直到前段時間Google大會直接說會支持Kotlin語言姑蓝,所以我就抽出了一點時間準備學(xué)習(xí)一下,個人覺得到目前為止這個東西并不是什么剛需吕粗,有興趣可以學(xué)習(xí),不想學(xué)影響也不是很大,好了關(guān)于這門語言有多好榕茧,有多叼,我就不多少了,想要了解的出門百度编曼,這里給上源碼鏈接Kotlin-Android項目。
插件安裝
環(huán)境搭建當然是第一步池充,也是最重要的一步,但是這個Kotlin的環(huán)境搭建卻很簡單收夸,只要你安裝插件就行,個人是Android開發(fā)卧惜,所以就直接用Android Studio為例:
File—>Setting—>Plugins—>搜索Kotlin
然后點擊安裝,最后重啟Android Studio就行咽瓷,我這個截圖是安裝過的
創(chuàng)建項目
Android項目的創(chuàng)建我就不多說了,因為它是Android本身的不涉及到Kotlin語言的茅姜,所以與我們平時創(chuàng)建的規(guī)則一樣闪朱,不會的出門百度。
創(chuàng)建一個KotlinActivity
我們在創(chuàng)建的時候我們會發(fā)現(xiàn)钻洒,安裝插件之后就多了這兩個:
Kotlin File/Class 就是對應(yīng)的Kotlin對象我們這次不用奋姿,就暫時不講。
Kotlin Activity 就是我們要創(chuàng)建的KotlinActivity素标,我們選擇它称诗,編譯器還是會跟創(chuàng)建普通的Activity幫我們創(chuàng)建布局文件和在AndroidManifest.xml中注冊這個Activity。
Groud配置
個人在做第一個HelloWorld的時候就是卡在了這個地方头遭,網(wǎng)上有些說創(chuàng)建KotlinActivity的時候編譯器會幫助我們在build.gradle里面生成需要的配置粪狼,但是說實話我當時它并沒有這么幫我干,那么我們怎么手動配置呢任岸。
首先是項目最外面的build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext.kotlin_version = '1.1.2'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
這個是我的完整的配置文件再榄,其實大家只需要在根目錄加上最上面那句話
ext.kotlin_version = '1.1.2'
這里有一個問題,我們到底要寫什么版本號呢享潜?我當時就遇到了這個肯困鸥,在網(wǎng)上拷貝了一個版本好結(jié)果怎么都運行不起來,其實這個版本號需要與我們安裝的Kotlin插件的版本號一致,那么我們怎么查看自己安裝的Kotlin版本號呢疾就?
Tools—>Kotlin—>Config Kotlin Plugin Updates—>Check for updates now
好了澜术,接下來我們來配置一下需要使用Kotlin語言的module的build.gradle配置
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.zxf.kotlin"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// sourceSets {
// main.java.srcDirs += 'src/main/kotlin'
// }
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
}
這個是我的配置文件,很清晰猬腰,主要就是在根目錄最上層加上
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
接下來就是在dependencies 中引用kotlin
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
好了配置的步驟到這就真的徹底結(jié)束了鸟废,接下來,我們看一下代碼姑荷。
擼代碼啦
我們先來看一下剛剛創(chuàng)建的KotlinActivity的代碼
package com.zxf.kotlin
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
class KotlinActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kotlin)
}
}
布局文件沒有任何變化盒延,首先,我們定義兩個控件鼠冕,一個TextView添寺,一個Button并給它們設(shè)置上id
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/helloWorld"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/open_next"/>
</LinearLayout>
接下來,就是在Activity里面獲取這兩個控件了懈费,讓我們來看一下代碼:
helloWorld.text = "hello world"
open_next.text = "Open Next Activity"
open_next.setOnClickListener { startActivity(Intent(KotlinActivity@this,SecondActivity::class.java)) }
這三句話就完成了給TextView設(shè)置文字和給Button設(shè)置文字和添加點擊事件计露,到這是不是發(fā)現(xiàn),我擦真是超簡單憎乙,煩人的findviewbyid()終于不見了票罐,一些沒有必要的new 和;也不需要了泞边,簡直就是太干凈了胶坠。
總結(jié)
好了,這就完成了一個最簡單的Android項目繁堡,這里也附上源碼地址:
Kotlin-Android項目,我也會在后面?zhèn)€人的學(xué)習(xí)中不斷完善這個項目沈善,歡迎大家評論和提意見,共同成長椭蹄。