1. 程式人生 > >Android studio 2 手把手教你使用kotlin外掛

Android studio 2 手把手教你使用kotlin外掛

Kotlin for Android

最近谷歌IO大會, 把kotlin納入了Android開發首選語言, 估計這與谷歌和oracle一直在打官司的緣故分不開吧, 而且kotlin本身就很好用,不只是增加語法糖,而且kotlin-native是基於自己的runtime, 跨平臺的.好了, 廢話不多說,自己體會kotlin的好. 之前講了 [android studio3.0預覽版使用kotlin], 但是很多湧進來的新人在android studio2.0中使用kotlin有問題, 我現在就來演示一次, 希望有所幫助!(假定已經擁有了開發Android的基礎, 約定Android Studio簡稱as)

安裝kotlin外掛(安裝後重啟as生效)

安裝後重啟生效

新建工程

這裡寫圖片描述
然後Next. 新增empty Activity, 然後等待gradle去下載依賴, build

快捷新增kotlin支援

這裡寫圖片描述
選擇版本:
這裡寫圖片描述
自動添加了kotlin所需要的依賴
這裡寫圖片描述

把activity轉換成kotlin的

這裡寫圖片描述
轉換後的activity就是kotlin寫的了, 非常簡單, 在xml裡面新增textview的id

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.i7play.kotlintest.MainActivity">
<TextView
android:id="@+id/tv_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

然後在程式碼裡面寫:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val tvText = findViewById(R.id.tv_text) as TextView
        tvText.text = "測試一下"
    }
}

不寫findViewById

kotlin的黑科技,可以不寫繁瑣的findViewById, 只需要在app/build.gradle裡面新增一個apply就可以了

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

現在可以直接寫在xml裡面定義的控制元件id

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*//多引入的包

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //val tvText = findViewById(R.id.tv_text) as TextView
        //tvText.text = "測試一下"
        tv_text.text = "測試一下" //不要寫findViewById(R.id.tv_text) as TextView,是不是很爽?
    }
}

怎麼學kotlin?

-
-github裡面搜搜kotlin, 一大堆開源app,可以多學學.
-不要動不動就去問別人, 自己先搜答案,網上多得是答案, kotlin 2012年就開源了!
-
-最後, 新手請教的時候一定要謙虛, 並沒有人有義務回答問題, 零android基礎, 零java基礎的人好好看文件吧.
-QQ群:516157585