2021年4月11日 星期日

Android Basics in Kotlin - Unit 1: Kotlin basics for Android

Kotlin 簡介


  • 所有Kotlin程序都需要有一個 main() 函數
    • 宣告方式:fun main() {}

  • println() 
    • 輸出一行文字。

  • 程式註解:
    • //coments
    • /*comments*/

  • 宣告變數

    • 唯讀變數
      • 使用 val 進行宣告,例如: val age=34,宣告完成後僅能讀取此變數不得更改其值。

    • 一般變數
      • 使用 var 進行宣告,例如:var age=34 。

  • 整數
    • 正整數或負整數,例如0、23或-1024。

  • IntRange整數範圍
    • 可呼叫其random()方法產生範圍內亂數
      • 例如:(1..6).random() 可產生1~6間的整數亂數

  • 字串
    • 需用雙引號括住,例如"Hello"。
    • 在字串中輸出變數時須使用${},例如:Hello,  ${someone_name}。

  • 函數

    • 宣告
      • fun function_name(parameter1:Int=15, parameter2:Int) {}

    • 回傳
      • 函數定義中可以指定要回傳值的型別,並使用return來回傳內容。例如:fun example(): Int { return 5 }

  • 迴圈
    • repeat() {}
      • repeat (23) { print("%") }

  • 流程控制

    • If條件式,當()中的條件為真實執行{}內的程式碼。
      • if  (condition is true){
        execute something
        } else if (condition is true){
        execute something
        } else {
        execute something
        }

    • When條件式,類似其他語言中的switch,但比較特別的是 1. 可以將多個值對應到同一動作 2. 可以直接比對變數型別 3. 可以指定範圍作比對

      • when(variable){
        value1 -> execute something
        value2, value3 -> execute something
        valueN -> execute something
        is typeA -> execute something
        in X..Z ->execute something 
        !in A..C ->execute something 
        else -> execute something
        }

  • 類別(Class)
    • Class就像是物件的設計圖,可具有屬性(變數)和行為(函數)
    • Instance 是 Class 的實體物件,可調用其函數或更改屬性。
    • 創建 Instance 時,可以提供參數。例如:class Dice(val numSides: Int),然後透過Dice(6)創建Instance。

Android studio 中的第一個程序

  • 創建新專案
    • 點擊 Start a new Android Studio Project→為專案命名→選擇模板→填寫相關資訊。

  • 開啟虛擬設備
    • 點擊 Tools頁籤→ AVD Manager→選擇硬體設備與系統映像檔。

  • 執行應用程式
    • 確保已建立虛擬設備→選擇該設備→點擊工具欄上的執行按鈕。

  • 尋找專案文件路徑
    • 在Project視窗中點選下拉式選單→選擇Project Source Files。
    • activity_main.xml 為APP佈局相關的檔案。
    • MainActivity.kt 為提供主要畫面的元件檔案。

  • Ctrl+Alt+L
    • 重新格式化代碼並清理代碼。

建立基本Layout

  • Layout Editor 
    • 協助開發人員設計 Android 應用程式的介面。

  • Resource Manager
    • 幫助開發人員添加和編排圖像及其他資源的介面。

  • View
    • APP顯示在裝置螢幕畫面上的介面元素幾乎都屬於此。

  • Textview
    • APP中顯示文字的介面元素,開發人員可以調整其字體、大小與顏色…等屬性。
    • 顯示文字應設定為字串資源再從中提取,以利翻譯與重複使用。

  • ConstraintLayout 
    • 存放其他介面元素的容器。
    • 放置在其中的Views皆需設定水平與垂直方向的限制,例如介面元素間的距離或其與所屬容器的邊界限制。

  • ImageView
    • 用於顯示圖像的介面元素。
    • 屬性 [內容描述] 應透過 imageview..contentDescription() 填入資訊,以符合無障礙設計 (螢幕閱讀器的朗讀功能)。

  • Toast
    • 彈出短暫的懸浮訊息。

擲骰子App

  • 與物件進行互動前須先透過物件ID建立連結。
    • 例如:創建變數Button_A去連結ID為buttonid的按鈕
      • val Button_A: Button = findViewById(R.id.buttonid)


  • 監聽物件的點擊行為
    • Button_A.setOnClickListener {
          execute something
      }


  • 將 ID 為 imageid 的 Imageview 內容設定為圖片 image_source_name
    • val Image_A: ImageView = findViewById(R.id.imageid)
      Image_A.setImageResource(image_source_name)

沒有留言:

張貼留言