可以顯示文字的元件
可以輸入文字的元件
<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"/>
OnClickListener
當使用者點選,且放開後觸發
button.setOnClickListener {}
使用 .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
將得到的亂數轉為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")