前言
前面說了那么多,只是和kotlin有了一個大概的認知而已,如果沒有經常去使用,久而久之就會忘記,所以是時候和Kotlin打交道的時候了,前面只是介紹Kotlin如何如何的,沒有一個示例源碼項目來為解剖kotlin的真面目,下面就開始為大家講解如何在Android studio環境使用kotlin開發。
本篇文章是基于Android studio環境下開發的一個小小示例demo,主要是拋磚引玉,至于修行,還是得看個人。
環境配置
在Android studio環境開發,需要安裝kotlin的插件,如果沒有安裝的請先進行安裝
安裝方式路徑Android studio -> preferences... ->Plugins -> Install JetBrains plugin...
然后在界面上輸入Kotlin,這個時候在右邊就會出現安裝按鈕,由于我已經安裝過了,沒有安裝的童鞋就選擇最新版本進行安裝就可以了,安裝完成后點擊restart,這樣我們在Android studio上就可以使用kotlin開發了
正式和Kotlin打招呼-- Hello Kotlin
首先創建項目的時候還是和之前創建Android項目一樣就可以了,然后會有一個神奇的東西,自動幫你轉換成kotlin代碼
未轉換前的代碼,這里直接上圖片
轉換后的代碼
我們找到code ->Convert Java File to Kotlin File 然后直接選擇就可以了
哈哈,有沒有發現神奇的事情發生了,通過轉換,這個代碼看著怎么有點不適應啊,怎么感覺像是swift的代碼風格了。至此,kotlin的環境已經搭建完成了,什么,這樣就搭建完成了?是的,就是這么簡單,一個插件就能幫你搞定。
接下來我就寫個入門級的程序,廢話不多說,直接上代碼。
我們發現,使用kotlin之后,再也不用擔心我們xml里面的控件ID沒有綁定而直接使用后拋異常的情況了,是的,你沒有看錯,也沒有聽錯,用kotlin再也不用綁定我們那些控件ID了,不過我們需要做一個動作,那就是引入以下插件,
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
如果你在Android studio里面沒有設置自動導包,那就需要手動導包了
import kotlinx.android.synthetic.main.activity_main.*
然后就可以看到神奇的效果了,xml布局文件的ID可以直接調用并運行
那如何新建一個Kotlin類呢,來來來,看這里
假設我們寫一個User的Kotlin文件,當然你也可以寫成一個Kotlin的class,這里我是寫一個User的文件,然后在里面創建一個Users對象。
看到這里,有沒有覺得很奇怪,居然可以在Kotlin文件里面創建一個對象。
那在Kotlin里面是怎么new 一個對象的呢,看這里:
//聲明一個對象,這個就跟我們使用Java new 一個對象一樣 Java里面是Users users = new Users("小明");
val users = Users("小明");
咦,有沒有發現,Kotlin聲明一個對象和Java區別這么大,以前人們總是調戲Java程序員沒有對象怎么辦,那就自己new 一個對象咯。現在可好,使用Kotlin之后,想new都沒得new了,這里應該悲哀一下,因為沒辦法new對象了。
下面用兩個EditText控件做一個簡單的加法運算
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="55dp"
android:gravity="center">
<EditText
android:id="@+id/input_edit_number_one"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/input_edit_number_two"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="5" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="=" />
<TextView
android:id="@+id/result"
android:layout_marginLeft="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10" />
</LinearLayout>
然后在使用EditText賦值變量的時候發現,居然不能這樣子寫,不能直接使用text屬性賦值,而且還可以發現EditText屬性沒有getText()的方法了。
//這樣子賦值是會報錯的
input_edit_number_one.text = " 5 "
//我們只能這樣子賦值,然后在做一次賦值后的轉換
input_edit_number_one.setText("5");
下面直接給出兩個數相加的代碼示例
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//聲明一個對象,這個就跟我們使用Java new 一個對象一樣 Java里面是Users users = new Users("小明");
val users = Users("小明");
author.text = users.name;
input_edit_number_one.setText("5");
input_edit_number_two.setText("5");
val number1: String? = input_edit_number_one.text.toString();
val number2: String? = input_edit_number_two.text.toString();
//Button 的點擊事件
equalTo.setOnClickListener {
val result1 = calculatetwo(number1!!.toInt(), number2!!.toInt());
result.text = result1.toString();
}
//也可以調用calculatetwo函數
//val result2 = calculate(number1!!.toInt(), number2!!.toInt());
//result.text = result2.toString();
}
/**
* 計算兩個數字相加
*/
fun calculate(a: Int, b: Int): Int {
return a + b;
}
/**
* 計算兩個數字相加
*/
fun calculatetwo(a: Int, b: Int): Int = a + b;
回顧一下今天所講的內容,
- 如何在Android studio環境下搭建Kotlin開發環境
- 如何創建一個Kotlin文件,然后怎么聲明一個對象,如何使用一個對象
- 通過引入一個插件,所有的控件ID都不需要進行綁定就可以調用
- EditText 控件的一些相關知識
- 通過一個簡單的函數,了解到了Kotlin的函數和Java的不同之處
好了,今天就先講這么多,通過以上幾點,我們對Kotlin的認知也加深了很多,如果文章中有什么錯誤的地方,歡迎丟磚,大家一起學習,一起進步,謝謝大家!