kotlin是啥?
1,來自JetBrains公司,用了一個小島的名字來命名的,跟Java一樣..
2,同樣運(yùn)行在JVM上
3,靜態(tài)強(qiáng)類型
4,可編譯成JavaScript源碼
5,與Java100%兼容
kotlin的大事兒
2011.6 項(xiàng)目公開
2012.2 開源https://github.com/Jetbrainskotlin
2013.8 支持Android studio
2014.6 全新的開源web站點(diǎn)和域名Kotlinlang.org
2015.3 Eclipse 插件亮相
2015.4 Anko亮相
2016.2 1.0正式版發(fā)布
為什么需要kotlin
1,空類型安全
2,Lambda 表達(dá)式
3,擴(kuò)展方法
4,類型推導(dǎo)
5,勝任Java能做的所有事,并且比Java更簡單
6,沒有分號 ..
一點(diǎn)點(diǎn)歷史而已,關(guān)鍵問題是谷歌爸爸說了,考特林即將成為Android的官方開發(fā)語言,正在緊張的敲項(xiàng)目的我一覺醒來,哎呦呦呦,要失業(yè) 了..
Android用Java開發(fā)了這么10多年了,突然轉(zhuǎn)換為考特林,首先能確定的一點(diǎn)就是谷歌既然換了語言,那肯定考慮好了,既然考慮好了,能咋辦呢,學(xué)唄.就像當(dāng)時的eclipse一樣,開發(fā)工具是真的用eclipse用習(xí)慣了,但谷歌就自己搞了Android studio,你不換行嗎,不行,因?yàn)锳ndroid studio比eclipse強(qiáng)大.所以你還是得屁顛屁顛的跟著換..依稀記得剛開始的時候,用Android studio簡直要死,習(xí)慣最難改.gradle是個啥當(dāng)時一頭霧水.慢慢的慢慢的,不也就好了么...現(xiàn)在倒是還覺得Android studio比eclipse好用多了...
接下來說這個新寵兒Kotlin ...
你的AS里隨便打開個項(xiàng)目,然后點(diǎn)擊settings找到plugins , 然后呢搜Kotlin就行,搜到安裝即可..
要來個圖片嗎?很明顯要的?沒圖你說個辣子串串....
好了然后重啟你的Android studio
然后準(zhǔn)備開始吧...
在項(xiàng)目里的module.gradle中添加這么兩句
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
然后在project.gradle中這么寫
好了,開始擼碼子
生成的MainActivity中的代碼和你原來的一樣
shift + ctrl + Alt + k 就生成了kotlin語法的代碼了
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
`}
}
嘖嘖嘖,木有分號,繼承是 : 函數(shù)名為fun,參數(shù)為參數(shù)名 : 參數(shù)類型 , 其實(shí)看看也覺得很簡單是吧.哈哈..
來點(diǎn)小動作mainAvtivity的布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.andbase.kt1.MainActivity">
<TextView
android:id="@+id/tvKt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="這是第一次使用kotlin語言"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="點(diǎn)擊改變下方文字"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button"
android:layout_centerHorizontal="true"
android:text="來個吐司"
/>
</RelativeLayout>
來個簡單的事件
tvKt1.text = ("好家伙,這樣就OK了?")
button.setOnClickListener { tvKt1.text = ("封裝的第一個方法") }
button1.setOnClickListener { Toast.makeText(this, "出來吧", Toast.LENGTH_SHORT).show()}
這樣寫就成了,運(yùn)行下試試,OK的,沒毛病的..
不用findViewById,編譯時的時候,kotlin導(dǎo)包就找到控件的Id了
import android.content.Context
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.* //就是這個初始化ViewId的
在看監(jiān)聽事件,就那么一句,感覺確實(shí)用起來不錯,值得學(xué)...其實(shí)換個語言就是換種語法而已,這家伙也是依靠的JVM,和別的什么東西都沒沖突,唯一需要改變的就是語法而已,一個復(fù)雜的語法換成一個簡單的語法,何樂不為(心痛)是吧...