iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0

Kotlin 的基本資料型態與 Java 相同,包括:Byte、Short、Int、Long、Float、Double、Char、String、Boolean,但在 Kotlin 它們都是大寫字母開頭。

在宣告時,會用到「var」與「val」的關鍵字,前者是用在可以改變值的變數,後者則是常數。

// Kotlin 的資料型態放在變數名稱後面,並用冒號隔開,最前面則定義變數或常數。
val id: String = "100"
var name: String = "Piyan"
var age: Int = 23
var isActive: Boolean = true

// 若宣告時就給予初始值,資料型態可以省略不寫,Kotlin 會自動定義型態。
// 若要宣告 Long,需在數值後方加上 L 或 l 字眼。
// 若初始值給予的是浮點數,型態為 Double。
// 若要宣告 Float,需在數值後方加上 F 或 f。
val id = "100"
var name = "Piyan"
var age = 23
var isActive = true

activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="evan.chen.app.mvp_pattern.LoginActivity">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
        
    <TextView
        android:id="@+id/tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
</LinearLayout>

MainActivity:

class MainActivity : AppCompatActivity() {
    // 將tv2提昇為類別的屬性,也就是在 MainActivity 內的第一層中定義屬性
    // 利用 Kotlin 的 lateinit 語法定義一個之後才會初始化的屬性
    lateinit var tv2: TextView

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

        // tv1 是在 onCreate 方法中宣告的區域變數,在 onCreate 外是無法被存取的
        val tv1: TextView = findViewById<TextView>(R.id.tv1)
        
        // 然後從 onCreate 方法中再取得元件
        tv2 = findViewById(R.id.tv2)
    }
}

謝謝大家願意花時間閱讀,小弟弟我在此鞠躬/images/emoticon/emoticon41.gif


上一篇
[Lesson20] ButterKnife
下一篇
[Lesson22] Kotlin - Null檢查機制
系列文
刮掉Web Development的我,與撿到的Android Development30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言