五分鐘教你Android-Kotlin項(xiàng)目編寫(xiě)

背景

之前就看到過(guò)Kotlin這一門(mén)語(yǔ)言,也有不少大神和愿意走在知識(shí)最前沿的哥哥姐姐們說(shuō)這一門(mén)語(yǔ)言有多么多么的好,但是本人并沒(méi)有去了解他,直到前段時(shí)間Google大會(huì)直接說(shuō)會(huì)支持Kotlin語(yǔ)言,所以我就抽出了一點(diǎn)時(shí)間準(zhǔn)備學(xué)習(xí)一下,個(gè)人覺(jué)得到目前為止這個(gè)東西并不是什么剛需,有興趣可以學(xué)習(xí),不想學(xué)影響也不是很大,好了關(guān)于這門(mén)語(yǔ)言有多好,有多叼,我就不多少了,想要了解的出門(mén)百度,這里給上源碼鏈接Kotlin-Android項(xiàng)目。

插件安裝

環(huán)境搭建當(dāng)然是第一步,也是最重要的一步,但是這個(gè)Kotlin的環(huán)境搭建卻很簡(jiǎn)單,只要你安裝插件就行,個(gè)人是Android開(kāi)發(fā),所以就直接用Android Studio為例:
File—>Setting—>Plugins—>搜索Kotlin
然后點(diǎn)擊安裝,最后重啟Android Studio就行,我這個(gè)截圖是安裝過(guò)的


Kotlin_Plugins.png

創(chuàng)建項(xiàng)目

Android項(xiàng)目的創(chuàng)建我就不多說(shuō)了,因?yàn)樗茿ndroid本身的不涉及到Kotlin語(yǔ)言的,所以與我們平時(shí)創(chuàng)建的規(guī)則一樣,不會(huì)的出門(mén)百度。

創(chuàng)建一個(gè)KotlinActivity

create_Activity.png

我們?cè)趧?chuàng)建的時(shí)候我們會(huì)發(fā)現(xiàn),安裝插件之后就多了這兩個(gè):
Kotlin File/Class 就是對(duì)應(yīng)的Kotlin對(duì)象我們這次不用,就暫時(shí)不講。
Kotlin Activity 就是我們要?jiǎng)?chuàng)建的KotlinActivity,我們選擇它,編譯器還是會(huì)跟創(chuàng)建普通的Activity幫我們創(chuàng)建布局文件和在AndroidManifest.xml中注冊(cè)這個(gè)Activity。

Groud配置

個(gè)人在做第一個(gè)HelloWorld的時(shí)候就是卡在了這個(gè)地方,網(wǎng)上有些說(shuō)創(chuàng)建KotlinActivity的時(shí)候編譯器會(huì)幫助我們?cè)赽uild.gradle里面生成需要的配置,但是說(shuō)實(shí)話我當(dāng)時(shí)它并沒(méi)有這么幫我干,那么我們?cè)趺词謩?dòng)配置呢。
首先是項(xiàng)目最外面的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
}

這個(gè)是我的完整的配置文件,其實(shí)大家只需要在根目錄加上最上面那句話

ext.kotlin_version = '1.1.2'

這里有一個(gè)問(wèn)題,我們到底要寫(xiě)什么版本號(hào)呢?我當(dāng)時(shí)就遇到了這個(gè)肯,在網(wǎng)上拷貝了一個(gè)版本好結(jié)果怎么都運(yùn)行不起來(lái),其實(shí)這個(gè)版本號(hào)需要與我們安裝的Kotlin插件的版本號(hào)一致,那么我們?cè)趺床榭醋约喊惭b的Kotlin版本號(hào)呢?
Tools—>Kotlin—>Config Kotlin Plugin Updates—>Check for updates now

kotlin_update.png

好了,接下來(lái)我們來(lái)配置一下需要使用Kotlin語(yǔ)言的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'
}


這個(gè)是我的配置文件,很清晰,主要就是在根目錄最上層加上

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'

接下來(lái)就是在dependencies 中引用kotlin

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

好了配置的步驟到這就真的徹底結(jié)束了,接下來(lái),我們看一下代碼。

擼代碼啦

我們先來(lái)看一下剛剛創(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)
    }
}

布局文件沒(méi)有任何變化,首先,我們定義兩個(gè)控件,一個(gè)TextView,一個(gè)Button并給它們?cè)O(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>

接下來(lái),就是在Activity里面獲取這兩個(gè)控件了,讓我們來(lái)看一下代碼:

        helloWorld.text = "hello world"
        open_next.text = "Open Next Activity"
        open_next.setOnClickListener { startActivity(Intent(KotlinActivity@this,SecondActivity::class.java)) }

這三句話就完成了給TextView設(shè)置文字和給Button設(shè)置文字和添加點(diǎn)擊事件,到這是不是發(fā)現(xiàn),我擦真是超簡(jiǎn)單,煩人的findviewbyid()終于不見(jiàn)了,一些沒(méi)有必要的new 和;也不需要了,簡(jiǎn)直就是太干凈了。

總結(jié)

好了,這就完成了一個(gè)最簡(jiǎn)單的Android項(xiàng)目,這里也附上源碼地址:
Kotlin-Android項(xiàng)目,我也會(huì)在后面?zhèn)€人的學(xué)習(xí)中不斷完善這個(gè)項(xiàng)目,歡迎大家評(píng)論和提意見(jiàn),共同成長(zhǎng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容