Kotlin Android 高效入門
線上課程
  • Kotlin Android 高效入門
  • Android 開發準備
    • 0 Git 版本控制系統
      • 0.1 Gitlab 網站
      • 0.2 Gitlab 範例專案
      • 0.3 Gitlab 取得本書範例
      • 0.4 版本切換
    • 1 Android 系統與應用程式
      • 1.1 Android 版本演進
      • 1.2 Android 系統架構
      • 1.3 應用程式基礎
      • 1.4 應用程式元件
      • 1.5 應用程式宣告檔
      • 1.6 Android Studio 開發環境
    • 2 開發環境安裝
      • 2.1 基礎環境-JDK
      • 2.2 整合開發工具-Android Studio
      • 2.3 必要的設定
  • Android 專案開發
    • 3 Android 專案架構與 Activity
      • 3.1 建立Bmi專案
      • 3.2 AndroidManifest.xml載運清單
      • 3.3 畫面配置-Layout
      • 3.4 Java/Kotlin 類別
      • 3.5 資源 Resources
      • 3.6 Android Support Library-支援函式庫
    • 4 版面配置環境
      • 4.1 版面配置設計畫面
      • 4.2 ConstraintLayout 版面配置
      • 4.3 LinearLayout 流水式版面
      • 4.4 元件的高度與寬度
      • 4.5 元件位置與距離
    • 5 Kotlin 語言基礎
      • 5.1 Kotlin 基礎知識
      • 5.2 類別與物件
    • 6 Activity 設計
      • 6.1 Bmi 專案功能設計
      • 6.2 MainActivity 中取得畫面元件
      • 6.3 按鈕的事件處理
      • 6.4 使用浮動顯示-Toast類別
      • 6.5 使用對話框-AlertDialog 類別
      • 6.6 多國語言
      • 6.7 按鈕事件處理-匿名類別與 lambda
  • 線上課程
    • 20 線上課程 courses
Powered by GitBook
On this page
  • Activity 類別
  • Activity 的子類別
  • onCreate 方法

Was this helpful?

  1. Android 專案開發
  2. 3 Android 專案架構與 Activity

3.4 Java/Kotlin 類別

Previous3.3 畫面配置-LayoutNext3.5 資源 Resources

Last updated 5 years ago

Was this helpful?

所有在 APP 中會使用到的 Kotlin 與 Java 類別全都放在「src」目錄,在設計一個 Android 應用程式時,最常用到的是 Activity 類別、資料庫存取類別與其他 因為需求所設計出的類別。在 Android 配置時,會顯示在左方專案區中的 app/java 中,如下圖:

Activity 類別

Android 團隊為了讓開發者能夠快速開發自己能夠控制的畫面,設計了 「android.app.Activity」類別,類別中已設計許多有關畫面控制、取得各類 工具的方法,開發者設計類別時先繼承 Activity 類別,就能在這個類別中撰 寫客製化的程式碼,開發符合自己需求的畫面功能。 Activity 類別的繼承情形如下圖:

上圖可看出 Activity 的父類別為 ContextThemeWrapper,再上層父類 別為 ContextWrapper,再上層則為「Context」類別。

Activity 的子類別

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 等類別。

onCreate 方法

一個 Activity 類別最重要的是「onCreate」方法,在產生 Activity 時會 自動執行 onCreate 方法中的程式碼,之後才會顯示在手機畫面上。

上圖在 onCreate 方法中的第 9 行呼叫父類別的 onCreate 方法,主要是進行資料設定,接下來的程式碼設計類別使用的畫面配置檔

setContentView(R.layout.activity_main)

setContentView 方法是 android.app.Activity 類別提供的方法,用來設 定 Activity 本身的畫面配置資源,在 Activity 中存取資料需透過「R」類別, R 類別代表應用程式內的資源,有關「資源」會在下一節詳細介紹。