您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關利用Kotlin怎么編寫一個Android項目,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
插件安裝
環境搭建當然是第一步,也是最重要的一步,但是這個Kotlin的環境搭建卻很簡單,只要你安裝插件就行,個人是Android開發,所以就直接用Android Studio為例:
File—>Setting—>Plugins—>搜索Kotlin
然后點擊安裝,最后重啟Android Studio就行,我這個截圖是安裝過的
創建項目
Android項目的創建我就不多說了,因為它是Android本身的不涉及到Kotlin語言的,所以與我們平時創建的規則一樣,不會的出門百度。
創建一個KotlinActivity
我們在創建的時候我們會發現,安裝插件之后就多了這兩個:
Kotlin File/Class 就是對應的Kotlin對象我們這次不用,就暫時不講。
Kotlin Activity 就是我們要創建的KotlinActivity,我們選擇它,編譯器還是會跟創建普通的Activity幫我們創建布局文件和在AndroidManifest.xml中注冊這個Activity。
Groud配置
個人在做第一個HelloWorld的時候就是卡在了這個地方,網上有些說創建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'
這里有一個問題,我們到底要寫什么版本號呢?我當時就遇到了這個肯,在網上拷貝了一個版本好結果怎么都運行不起來,其實這個版本號需要與我們安裝的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"
好了配置的步驟到這就真的徹底結束了,接下來,我們看一下代碼。
擼代碼啦
我們先來看一下剛剛創建的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并給它們設置上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設置文字和給Button設置文字和添加點擊事件,到這是不是發現,我擦真是超簡單,煩人的findviewbyid()終于不見了,一些沒有必要的new 和;也不需要了,簡直就是太干凈了。
上述就是小編為大家分享的利用Kotlin怎么編寫一個Android項目了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。