1. 程式人生 > >android studio 搭建Kotlin環境(一)

android studio 搭建Kotlin環境(一)

1、新建一個工程,在android3.0可以直接選擇“include Kotlin support”。如果不是3.0及以上也沒關係,在後面手動安裝一個Kotlin外掛即可

2、安裝Kotlin 外掛。點選File->Setting->Plugins->browse repositories..->在左上角的輸入框搜尋Kotlin 。我已經安裝過所以卡看不見綠色的install按鈕。記住安裝的Kotlin的版本號我的是V1.3.10,記不住代會知道怎麼查就好啦。

3、由於我建立的是java檔案,需要轉換成Kotlin檔案,android studio支援自動轉換。

通過選單欄依次調出 Code ->Convert Java File to Kotlin File.。

轉化後的檔案如下,上面喲一個提示,點選藍色的“configure”

彈出一個框,需要選擇 和安裝的Kotlin一樣的版本v1.3.10,但是這裡最高只有1.2.71沒關係,我們代會手動修改成1.3.10就可以

點選ok之後將ext.kotlin_version='version'改成1.3.10。也就是kotlin外掛的版本號。點選“sync"就好了

 

配置完成以後就開始第一個登入程式了。kotlin結合anko構建佈局比之前用xml檔案建立佈局要快,但是這是我們第一次試用kotlin寫就還有沿用xml構建佈局的方式寫。不知道的可以搜一下kotlin如何結合anko構建佈局。

登入介面activity_main.xml

<?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:layout_gravity="center_horizontal"
    android:background="#ffffff"
    android:orientation="vertical"
    android:padding="40dp">


    <LinearLayout
        android:id="@+id/lin_count"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_marginTop="45dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="25dp"
            android:layout_marginLeft="12dp"
            android:layout_marginRight="15dp"
            android:src="@drawable/ic_launcher_background" />

        <EditText
            android:id="@+id/loginAccount"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@null"
            android:hint="登入賬戶"
            android:maxLength="11"
            android:textSize="16sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/lin_password"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="25dp"
            android:layout_marginLeft="12dp"
            android:layout_marginRight="15dp"
            android:src="@drawable/ic_launcher_background"/>

        <EditText
            android:id="@+id/loginPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@null"
            android:hint="賬戶密碼"
            android:password="true"
            android:maxLength="11"
            android:textSize="16sp"/>
    </LinearLayout>

    <Button
        android:id="@+id/login_button"
        android:layout_width="300dp"
        android:layout_height="44dp"
        android:layout_gravity="center"
        android:layout_marginTop="18dp"
        android:text="登入"
        android:textColor="#ffffff"
        android:textSize="18sp" />

</LinearLayout>

mainActivity.java

import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import android.view.View

//kotlin支援直接使用Id的操作控制元件,不需要findViewById,要使用id操作控制元件,需要加上下面這句話。
import kotlinx.android.synthetic.main.activity_main.*

/**
 * Created by 林亮
 */
//kotlin用冒號:表示繼承
class MainActivity : Activity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //直接使用id操作
        login_button.setOnClickListener(this)
        rem_pas_check.setOnClickListener(this)
        newUser.setOnClickListener(this)
    }

    override fun onClick(view: View?) {
        //when取代switch,比switch更加強大
        when (view) {
            login_button -> {
                if (LegalUserInfo()==true) {
                    //Toast.makeText(this, "合法使用者", Toast.LENGTH_LONG).show();
                    var intent: Intent = Intent()
                    //跳轉
                    intent.setClass(this, SecondActivity::class.java)
                    startActivity(intent)
                } else {
                    Toast.makeText(this, "重新輸入", Toast.LENGTH_LONG).show();
                }
            }
            rem_pas_check -> {
                Toast.makeText(this, "3333", Toast.LENGTH_LONG).show();
                Log.i("test==", "rem_pas_check");
                println("")
            }
            newUser -> {
                Toast.makeText(this, "444", Toast.LENGTH_LONG).show();
                Log.i("test==", "newUser");
            }
        }
    }

    fun LegalUserInfo(): Boolean {
        //獲取editview的值
        var userName: String? = loginAccount.getText().toString().trim();
        var password: String? = loginPassword.getText().toString().trim();
        if (userName == null || "".equals(userName)) {
            Log.i("test==LegalUserInfo", "userName>>>");
            return false
        } else if (password == null || "".equals(password)) {
            Log.i("test==LegalUserInfo", "password>>>");
            return false
        }
        return true
    }
}

上面的程式碼很簡單,看幾眼就能懂,如果對於語法不熟。可以先學一學語法

http://www.runoob.com/kotlin/kotlin-basic-syntax.html

https://blog.csdn.net/a172131234/article/details/72637778