編輯:關於Android編程
@author ASCE1885的 Github 簡書 微博 CSDN
原文鏈接
Kotlin是由JetBrains設計的開放源碼的編程語言,它正在Java開發者中變得越來越流行。Kotlin通常被吹捧為Java的繼承者,相比較Java而言,Kotlin提供更為豐富的開發經驗,因為它更現代,更具表現力和更簡介。
如果你在尋求Android開發的可替代編程語言,那麼應該試一下Kotlin。使用Kotlin,你可以很容易的在Android工程中替代Java或者與Java混合使用。
本文接下來將介紹在Android Studio工程中如何使用Kotlin和Kotlin插件。
繼續本文之前,你首先需要完成如下兩件事情:
將你的Andoid Studio更新到最新版本 理解Kotlin的基本語法如果你不熟悉Kotlin編程語言的話,建議先閱讀Kotlin指南中的開始章節。
在Android Studio的快速開始菜單中,選擇Configure>Plugins:
在打開的頁面中,點擊底部的Install JetBrains plugin…:
在插件列表中選擇或者搜索Kotlin Extensions For Android並點擊右邊窗口的Install Plugin按鈕:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="" src="/uploadfile/Collfiles/20150630/20150630083713157.png" title="\" />
由於這個擴展插件依賴於Kotlin插件,因此會彈出一個對話框提示我們同時去下載它,點擊Yes按鈕開始插件的下載:
當下載安裝完成之後,重啟Android Studio就可以激活插件了。
在Android Studio中,右鍵單擊工程包名在彈出的菜單中選擇New>Kotlin File:
在彈出的對話框中,輸入Activity的名字並在類型下拉列表中選擇Class。我們把名字命名為MainActivity:
當類被創建出來後,你將會看到一個警告,提示你配置app模塊來支持Kotlin:
單擊警告提示條的鏈接,在彈出的對話框中點擊OK按鈕選擇默認的Kotlin插件版本即可:
為了配置你的工程支持Kotlin,Kotlin插件修改了build.gradle文件。點擊Sync Now按鈕就可以應用這些改動了:
到這裡,工程的配置完成了。讓我們回到剛才創建的Kotlin類來開始Kotlin的編程吧。
為了保持例子的簡單,我們將展示如何創建一個Activity,它包含一個用於顯示String字符串的TextView。
確保你的類繼承自Activity,並重寫其onCreate函數。當然,你要使用Kotlin的方式實現。如果你還不熟悉Kotlin,建議通過快捷鍵Control+O來激活Android Studio的代碼生成功能,從而得到正確的函數簽名:
生成之後,我們的類應該如下所示:
package com.hathy.kotlinsample
import android.app.Activity
import android.os.Bundle
public class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
使用val關鍵字創建TextView的一個只讀實例:
val myMessage = TextView(this)
調用TextView的setText函數設置要顯示的字符串,接著調用setContentView將TextView設置給它:
myMessage.setText("Hello")
setContentView(myMessage)
就像在Java Activity中,你也需要在AndroidManifest.xml文件中聲明Kotlin Activity,以便讓Android系統識別到它。假如這是你工程中唯一的Activity,那麼manifest文件看起來如下所示:
現在你可以在你的Android設備或者模擬器上運行這個app了。雖然Kotlin編譯器比Java編譯器稍微慢一點,但你可能察覺不到編譯時間的顯著變化。
Kotlin的Android擴展插件使得開發者可以像對待Activity屬性一樣對待定義在Activity的XML布局文件中的組件。也就是說,如果使用這個插件,你將不再需要調用findViewById。這些屬性因此被稱為合成屬性(synthetic properties)。
要在項目中使用這個特性,需要在app模塊的build.gradle文件中加入org.jetbrains.kotlin:kotlin-android-extensions作為構建腳本依賴。不要忘了點擊Sync Now按鈕來同步這個改變到工程中:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
現在讓我們創建一個和前面步驟創建的類似的Activity,但是使用布局XML文件來定義TextView。創建一個布局XML文件並命名為another_activity.xml。在這個文件中,定義TextView,id為myMessage:
新建另一個Kotlin類AnotherActivity,繼承自Activity並重寫onCreate函數,實現如下所示:
package com.hathy.kotlinsample
import android.app.Activity
import android.os.Bundle
public class AnotherActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
在onCreate函數中調用setContentView並把剛才創建的布局XML文件設置給它:
setContentView(R.layout.another_activity)
現在,你可以使用下面代碼片段導入TextView,而不是使用findViewById的方式:
import kotlinx.android.synthetic.another_activity.myMessage
如果布局文件中存在其他的組件,你可以使用如下語句來一次性全部導入:
import kotlinx.android.synthetic.another_activity.*
現在你可以通過使用id來訪問TextView,就像該TextView是Activity類的一個屬性一樣。例如,修改TextView顯示的字符串:
myMessage.setText("Hello")
我們可以使用Kotlin插件將現存的Java類轉換成Kotlin類。為了嘗試這個特性,首先創建如下所示的Java類,它是一個打印兩個整數之和的簡單的Activity:
public class YetAnotherActivity extends Activity {
private int a,b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
a=10;
b=20;
Log.d("MESSAGE", "The sum is "+(a+b));
}
}
使用快捷鍵Control+Alt+Shift+J,或者選擇菜單Code>Convert Java File to Kotlin File:
轉換後的Kotlin類如下所示:
public class YetAnotherActivity : Activity() {
private var a: Int = 0
private var b: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
a = 10
b = 20
Log.d("MESSAGE", "The sum is " + (a + b))
}
}
除了文件內容改變之外,文件的擴展名也從.java變為了.kt。
本文我們通過在Android Studio中安裝Kotlin插件和Kotlin Android擴展插件學到了如何在Android工程中使用Kotlin。由於Kotlin和Java在很大程度上可互操作,如果你還在學習Kotlin,那麼最好是逐步在你的Android項目中應用它。
為了學習更多的Kotlin相關知識,我建議浏覽Kotlin指南。開始章節將會幫助你盡快熟悉這門新語言。
文末美圖鑒賞
序言自從谷歌在2014年的IO大會上推出了Material Design新的設計規范後,安卓應用的整體美觀程度提升了很大的一個層次, 安卓再也不是又黑又丑的界面,取而代之
在android中,經常會和輸入法的軟件鍵盤交互。在Manifest文件裡,系統給activity的一個屬性-windowSoftInputMode來控制輸入法的顯示方式
引言 程序猿們,是否還在為你的老板辛辛苦苦的打工而拿著微薄的薪水呢,還是不知道如何用自己的應用或游戲來賺錢呢! 在這裡IQuick將教您如何同過自己的應用來賺取自己的
博客參照< < Android開發全程實錄> >的例子 , 以及其他博客, 希望能給學習Android Service的小伙伴一個比較詳細的解釋