五分鐘教你Android-Kotlin項(xiàng)目編寫
背景
之前就看到過Kotlin這一門語言,也有不少大神和愿意走在知識(shí)最前沿的哥哥姐姐們說這一門語言有多么多么的好,但是本人并沒有去了解他,直到前段時(shí)間Google大會(huì)直接說會(huì)支持Kotlin語言,所以我就抽出了一點(diǎn)時(shí)間準(zhǔn)備學(xué)習(xí)一下,個(gè)人覺得到目前為止這個(gè)東西并不是什么剛需,有興趣可以學(xué)習(xí),不想學(xué)影響也不是很大,好了關(guān)于這門語言有多好,有多叼,我就不多少了,想要了解的出門百度,這里給上源碼鏈接Kotlin-Android項(xiàng)目。
插件安裝
環(huán)境搭建當(dāng)然是第一步,也是最重要的一步,但是這個(gè)Kotlin的環(huán)境搭建卻很簡單,只要你安裝插件就行,個(gè)人是Android開發(fā),所以就直接用Android Studio為例:
File—>Setting—>Plugins—>搜索Kotlin
然后點(diǎn)擊安裝,最后重啟Android Studio就行,我這個(gè)截圖是安裝過的
創(chuàng)建項(xiàng)目
Android項(xiàng)目的創(chuàng)建我就不多說了,因?yàn)樗茿ndroid本身的不涉及到Kotlin語言的,所以與我們平時(shí)創(chuàng)建的規(guī)則一樣,不會(huì)的出門百度。
創(chuàng)建一個(gè)KotlinActivity
我們?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)上有些說創(chuàng)建KotlinActivity的時(shí)候編譯器會(huì)幫助我們?cè)赽uild.gradle里面生成需要的配置,但是說實(shí)話我當(dāng)時(shí)它并沒有這么幫我,那么我們?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è)問題,我們到底要寫什么版本號(hào)呢?我當(dāng)時(shí)就遇到了這個(gè)肯,在網(wǎng)上拷貝了一個(gè)版本好結(jié)果怎么都運(yùn)行不起來,其實(shí)這個(gè)版本號(hào)需要與我們安裝的Kotlin插件的版本號(hào)一致,那么我們?cè)趺床榭醋约喊惭b的Kotlin版本號(hào)呢?
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' }
這個(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'
接下來就是在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) } }
布局文件沒有任何變化,首先,我們定義兩個(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>
接下來,就是在Activity里面獲取這兩個(gè)控件了,讓我們來看一下代碼:
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),我擦真是超簡單,煩人的findviewbyid()終于不見了,一些沒有必要的new 和;也不需要了,簡直就是太干凈了。
總結(jié)
好了,這就完成了一個(gè)最簡單的Android項(xiàng)目,這里也附上源碼地址:Kotlin-Android項(xiàng)目
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android日期和時(shí)間選擇器實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android日期和時(shí)間選擇器實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11ReactiveCocoa代碼實(shí)踐之-RAC網(wǎng)絡(luò)請(qǐng)求重構(gòu)
這篇文章主要介紹了ReactiveCocoa代碼實(shí)踐之-RAC網(wǎng)絡(luò)請(qǐng)求重構(gòu) 的相關(guān)資料,需要的朋友可以參考下2016-04-04解決Android調(diào)用系統(tǒng)分享給微信,出現(xiàn)分享失敗,分享多文件必須為圖片格式的問題
這篇文章主要介紹了解決Android調(diào)用系統(tǒng)分享給微信,出現(xiàn)分享失敗,分享多文件必須為圖片格式的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Android TabHost選項(xiàng)卡標(biāo)簽圖標(biāo)始終不出現(xiàn)的解決方法
這篇文章主要介紹了Android TabHost選項(xiàng)卡標(biāo)簽圖標(biāo)始終不出現(xiàn)的解決方法,涉及Android界面布局相關(guān)屬性與狀態(tài)設(shè)置操作技巧,需要的朋友可以參考下2019-03-03Android TextView設(shè)置背景色與邊框的方法詳解
本篇文章是對(duì)Android中TextView設(shè)置背景色與邊框的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Android進(jìn)階Hook攔截系統(tǒng)實(shí)例化View過程實(shí)現(xiàn)App換膚功能
這篇文章主要為大家介紹了Android進(jìn)階Hook攔截系統(tǒng)實(shí)例化View過程實(shí)現(xiàn)App換膚功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01使用Thumbnails實(shí)現(xiàn)圖片指定大小壓縮
這篇文章主要為大家詳細(xì)介紹了使用Thumbnails實(shí)現(xiàn)圖片指定大小壓縮,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08Android如何獲取系統(tǒng)通知的開啟狀態(tài)詳解
這篇文章主要給大家介紹了關(guān)于Android如何獲取系統(tǒng)通知開啟狀態(tài)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起看看吧啊。2017-08-08