iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
0
自我挑戰組

Kotlin Everyday:新手寫程式踩的坑系列 第 1

Day 1 ─用Kotlin做Tap Counter計數器 (1) TextView、Button


試做一個簡易的計數器,練習按鈕及點擊事件設定。原本數值為0的文字,設一個按鈕,每次點擊它數字就會加一,另設一個Menu按鈕讓其可以歸零重計。

使用:TextView、Button和Menu

Android Studio操作主要分成畫面和程式碼,用來顯示主畫面的xml擋會放在res/layout下面,而java裡會放kt檔、用來寫入功能的程式碼。

基本畫面設計
在左上角搜尋所需要的畫面元件,點兩下加入下方清單後,可以用拖拉方式擺在螢幕任何位置,右側上下欄位分別設定該元件的屬性(例如ID名稱、背景色、字體、置中等屬性)及layout擺放位置。幾點注意:

  • 左下方有design和text兩種,text是設定畫面的程式碼,建議新手不要手刻畫面元件的程式碼,還是用design版面,視覺比較直觀。
  • 物件寬高設定wrap_content和parent差別:
    (1) wrap_content內容物件有多大、就會顯示多大
    (2) match_parent則是會填滿到邊界
  • 其他可以慢慢了解,但layout設定要先搞清楚,至少要設定兩個數值,相對或絕對位置都可以,不然會顯示紅色警示報錯。
  • 以下方這行layout_constraintStart_toEndOf來說,代表物件的左邊(start)要對齊參考物件「tv_number」的右邊(End)
  • 上方(Top)下方(Bottom)左側(Start)右側(End)
  • margin則是設定對齊距離

如何做一個計數器

  1. 拉一個TextView和Button進來,ID一定要設定,這樣在撰寫程式碼時才容易連結到畫面元件
  2. 打開MainActivity,初始程式碼如下,因為這篇是實作練習,就不講解package和import用途
package com.example.tap_counter   //套件名稱

import...      //導入

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)  
    }                    //連結activity_main畫面
}
  1. onCreate( ):必須實作的方法,系統建立時會呼叫此方法。參考Activity說明

在您的實作中,應該初始化 Activity 的基本元件。 最重要的是,您必須在這裡呼叫 setContentView(),才能定義 Activity 使用者介面的版面配置。

  1. 於是會在實作方法下面撰寫需要跑的程式碼:
  • 前面說要設定畫面元件的ID,因為在onCreate()裡可以直接用「btn_tap」元件ID代表該元件,不需要另外綁
  • 使用View.setOnClickListener()方法
  • 設定文字方法:TextView.setText
  • ${ }字串範本,後面加要顯示的變數
btn_tap.setOnClickListener {
    var x = 0       //宣告一個變數x為0,
    x++             //點擊後會加一 
    tv_number.text = "${x}"   //設定顯示的文字
}

做完這些,就有計數器的效果囉~明天會再講解怎麼設定menu和歸零按鈕
延伸參考:ButtonTextViewKotlin基本語法介紹


下一篇
Day 2 ─用Kotlin做Tap Counter計數器 (2) Menu
系列文
Kotlin Everyday:新手寫程式踩的坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言