android studio 搭建Kotlin環境(一)
阿新 • • 發佈:2019-01-13
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
}
}
上面的程式碼很簡單,看幾眼就能懂,如果對於語法不熟。可以先學一學語法