iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
1

Layout

TextView

可以顯示文字的元件

  • TextView常用屬性
    • android:textSize
      文字的大小
    • android:textColor
      文字的顏色

EditText

可以輸入文字的元件

  • EditText常用屬性
    • android:inputType
      輸入的型態,常用的有
      • "text" 任何文字
      • "number" 只允許0~9
      • "numberSigned" 只允許0~9和正負號
      • "date" 日期,可輸入0~9和斜線
      • "time" 可輸入0~9、分號與P、A、M三個英文字母
      • "textUri" 網址
      • "textEmailAddress" 電子信箱
    • android:maxLength
      輸入的最大長度
    • android:ems
      顯示的最大長度
    • android:hint
      提示文字(輸入文字後會隱藏)
<EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/ed_max" android:layout_marginTop="8dp"
            app:layout_constraintTop_toTopOf="parent" android:layout_marginStart="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginEnd="8dp" app:layout_constraintEnd_toStartOf="@+id/button"/>
<Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button" android:layout_marginTop="8dp"
            app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"/>
<TextView
            android:textSize="100sp" android:textColor="#000000"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_num" android:layout_marginTop="16dp"
            app:layout_constraintTop_toBottomOf="@+id/ed_max" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp"
            android:text="1"/>

Method

監聽事件

OnClickListener
當使用者點選,且放開後觸發

button.setOnClickListener {}

取得EditText的內容

使用 .text,將EditText元件轉為Editable型態後,使用toString()、toInt(),將內容轉成String再轉成Int

var max = editText.text.toString().toInt()

產生亂數

Math.random()

設置一個範圍1~max的亂數,作為抽籤的結果

var num = (Math.random()*max).toInt()+1

在Kotlin中,使用random()會得到小於1但不為負的浮點數
例如:

  • 當要取範圍0~n-1的亂數時,先乘上n,用toInt()取得四捨五入的值
    (Math.random()*n).toInt()

  • 當要取範圍1~n的亂數時,先乘上n,用toInt()取得四捨五入的值,再加1
    (Math.random()*n).toInt()+1

顯示到TextView

將得到的亂數轉為String型態,並在TextView顯示結果

在Code中設置TextView文字有兩種方式:

  • 使用.text將TextView轉為Editable型態
textView.text = num.toString()
  • 使用setText()設置文字(其他有文字的元件也可用)
textView.setText(num.toString())

除了字串變數,也可以使用" (文字) "作為設置文字的參數
使用$可以在" "中使用變數及運算式,例如:

//將TextView文字設為123
textView.text = "123"
//將TextView文字設為變數n
val n = 1
textView.text = "$n"
//將TextView文字設為1+2的數值
textView.text = "${1 + 2}"

所以剛才的Code也可以寫成

textView.text = "$num"
//或是
textView.setText("$num")

實作成果


下一篇
Day:02 排列組合計算機(RadioButton + for迴圈)
系列文
高中生Kotlin實作30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言