Activity是什麼? Java類別,沒有它就沒有互動了

Java類別

所有在APP中會使用到的Java類別全都放在「src」目錄,在設計一個Android應用程式時,最常用到的是Activity類別、資料庫存取類別與其他因為需求所設計出的類別。

Activity類別

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

Activity類別的繼承情形如下圖:

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

Activity的子類別

Android版本變化非常快速,往往每年都有新的功能的加入,這也讓原本釋出的類別庫不再能夠滿足新的功能。利用Java語言的繼承特色,可快速地擴充舊的元件,加入新的功能。例如在Android 3.0時,加入了Fragment功能,便釋出FragmentActivity擴充原Acitivity類別的功能,另外,也釋出ActionBarActivity以符合ActionBar功能。

接下來請展開「app」下的「java」,再展開套件「com.tom.bmi」,並連擊「MainActivity」類別,如下:

MainActivity.java的第一行是宣告這MainActivity的package套件名稱為「com.tom.bmi」,接著是import語法,重要的則是類別的宣告,如下圖:

上圖的第12行代表MainActivity繼承了「AppCompatActivity」類別,AppCompatActivity是新版的類別,它的套件為「android.support.v7.app」,屬於support v7類別庫(support v7類別庫的導入在本章最後會詳細說明)。其主要目的是「向下相容」,自從Android 3.0以來使用的ActionBarActivity已不建議使用,因此,設計一個Activity時,建議都繼承AppCompatActivity,才能讓開發的APP都能在Android 3.0、4.x、5.x與6.x的環境中正常執行。下圖是AppCompatActivity的類別繼承圖:

因為MainActivity繼承了AppCompatActivity,也代表MainActivity也具備了上層所有類別的方法與能力,如Activity、Context等類別。

提示:顯示行號

在編輯區域程式碼的左方長條狀處按下滑鼠右鍵,可勾選「Show Line Numbers」可顯示每行的行號,如下圖:

MainActivity的onCreate方法

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

上圖在onCreate方法中的第10行呼叫父類別的onCreate方法,主要是進行資料設定,接下來的程式碼設計了一項工作,說明如下:

設定類別使用的畫面配置檔

setContentView(R.layout.activity_main);

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

[版權聲明]
本文章版權為湯秉翰所有,授權範圍僅限綠豆湯網站使用,除Facebook之類社群等未更改本文章出處之分享行為不在此限,其他個人或公司未經作者同意,不得任意將本文章內容轉載至其他網站,或以任何形式重製,為以免觸犯著作權法,請尊重作者之智慧財產權。

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *