3.4 Java/Kotlin 類別
Last updated
Last updated
所有在 APP 中會使用到的 Kotlin 與 Java 類別全都放在「src」目錄,在設計一個 Android 應用程式時,最常用到的是 Activity 類別、資料庫存取類別與其他 因為需求所設計出的類別。在 Android 配置時,會顯示在左方專案區中的 app/java 中,如下圖:
Android 團隊為了讓開發者能夠快速開發自己能夠控制的畫面,設計了 「android.app.Activity」類別,類別中已設計許多有關畫面控制、取得各類 工具的方法,開發者設計類別時先繼承 Activity 類別,就能在這個類別中撰 寫客製化的程式碼,開發符合自己需求的畫面功能。 Activity 類別的繼承情形如下圖:
上圖可看出 Activity 的父類別為 ContextThemeWrapper,再上層父類 別為 ContextWrapper,再上層則為「Context」類別。
Android 版本變化非常快速,往往每年都有新的功能的加入,這也讓原 本釋出的類別庫不再能夠滿足新的功能。利用 Java 語言的繼承特色,可快速 地擴充舊的元件,加入新的功能。例如在 Android 3.0 時,加入了 Fragment功能,便釋出 FragmentActivity 擴充原 Acitivity 類別的功能。 接下來請展開「app」下的「java」,再展開套件「com.tom.bmi」,並 連擊「MainActivity」類別,如下:
再點擊第 3 行最前面的加號 (+) 產開 import 語法,如下圖:
MainActivity.kt 的第一行是宣告這 MainActivity 的 package 套件名稱為「com.tom.bmi」,接著是 import 語法,重要的則是類別的宣告,如下圖:
上圖的第 6 行代表 MainActivity 繼承了「AppCompatActivity」 類別,冒號「:」是 Kotlin 的繼承語法,AppCompatActivity 是新版的類 別, 它的套件為「androidx.appcompat.app」,屬於 appcompat 類別庫(appcompat 類別庫的導入在本章最後會詳細說明)。其主要目的是「向下相容」,自從 Android 3.0 以來使用的 ActionBarActivity 已不建議使用,因此,設計一個 Activity 時,建議都繼承AppCompatActivity,才能讓開發的 APP 都能在 Android 3.0、4.x、5.x 與 6.0 等環境中正常執行。下圖是 AppCompatActivity 的類別繼承圖:
因為 MainActivity 繼承了 AppCompatActivity,也代表 MainActivity 也具備了上層所有類別的方法與能力,如 Activity、Context 等類別。
一個 Activity 類別最重要的是「onCreate」方法,在產生 Activity 時會 自動執行 onCreate 方法中的程式碼,之後才會顯示在手機畫面上。
上圖在 onCreate 方法中的第 9 行呼叫父類別的 onCreate 方法,主要是進行資料設定,接下來的程式碼設計類別使用的畫面配置檔
setContentView 方法是 android.app.Activity 類別提供的方法,用來設 定 Activity 本身的畫面配置資源,在 Activity 中存取資料需透過「R」類別, R 類別代表應用程式內的資源,有關「資源」會在下一節詳細介紹。