這個程式碼研究室是 Android Kotlin 基礎知識課程的一部分。如果您按部就班完成程式碼研究室,就能充分體驗到本課程的價值。所有課程程式碼研究室都列在 Android Kotlin 基礎知識程式碼研究室到達網頁。
簡介
到目前為止,您已完成所有設定,Android Studio 也為您建立了許多程式碼。修改所有程式碼之前,請務必瞭解您剛才建立的內容,以及如何瀏覽 Android 應用程式的來源檔案。
在本程式碼研究室中,您將進一步瞭解 Android 應用程式的主要元件,並在應用程式中加入按鈕,實現簡單的互動功能。
須知事項
- 如何安裝及開啟 Android Studio。
- 如何建立新的應用程式專案。
- 瞭解如何在模擬器或實體裝置上執行應用程式。
課程內容
- 如何編輯應用程式的版面配置檔案。
- 如何建立具有互動行為的應用程式。
- 許多新術語。如需術語和概念的簡單說明,請參閱詞彙表。
做法
- 瀏覽
MainActivity
Kotlin 檔案和活動的版面配置檔案。 - 在 XML 中編輯活動的版面配置。
- 在活動的版面配置中加入
Button
元素。 - 將硬式編碼的字串擷取到字串資源檔案中。
- 實作點擊處理常式方法,在使用者輕觸
Button
時,於畫面上顯示訊息。
在本程式碼研究室中,您將建立名為 DiceRoller 的新應用程式專案,並新增按鈕來提供基本互動功能。每次點選按鈕時,顯示文字的值都會變更。本程式碼研究室的最終 DiceRoller 應用程式如下所示:
在先前的程式碼研究室中,您已瞭解應用程式專案的主要部分,包括 java
和 res
目錄。在這項工作中,您會著重於構成應用程式的兩個最重要檔案:MainActivity
Kotlin 檔案和 activity_main.xml
版面配置檔案。
步驟 1:檢查 MainActivity
MainActivity
是 Activity
的範例。Activity
是核心 Android 類別,可繪製 Android 應用程式使用者介面 (UI) 並接收輸入事件。應用程式啟動時,會啟動 AndroidManifest.xml
檔案中指定的活動。
許多程式設計語言都會定義啟動程式的主要方法。Android 應用程式沒有主要方法。AndroidManifest.xml
檔案會指出使用者輕觸應用程式啟動器圖示時,應啟動 MainActivity
。如要啟動活動,Android 作業系統會使用資訊清單中的資訊設定應用程式環境,並建構 MainActivity
。接著 MainActivity
會依序執行一些設定。
每個活動都有相關聯的版面配置檔案。活動和版面配置會透過「版面配置加載」程序連結。活動啟動時,XML 版面配置檔案中定義的檢視區塊會轉換 (或「擴充」) 為記憶體中的 Kotlin 檢視區塊物件。完成後,活動就能將這些物件繪製到畫面上,並動態修改這些物件。
- 在 Android Studio 中,依序選取「File」>「New」>「New Project」,建立新專案。使用空白活動,然後按一下「Next」。
- 將專案命名為「DiceRoller」DiceRoller,並確認專案名稱和專案位置的所有其他值。確認已勾選「Use AndroidX Artifacts」(使用 AndroidX 構件)。按一下「完成」。
- 在「Project」>「Android」窗格中,依序展開「java」>「com.example.android.diceroller」。按兩下「MainActivity」MainActivity。程式碼編輯器會顯示
MainActivity
中的程式碼。 - 套件名稱和匯入陳述式下方是
MainActivity
的類別宣告。MainActivity
類別會擴充AppCompatActivity
。
class MainActivity : AppCompatActivity() { ...
- 請注意
onCreate()
方法。活動不會使用建構函式初始化物件。而是會呼叫一系列預先定義的方法 (稱為「生命週期方法」),做為活動設定的一部分。其中一個生命週期方法是onCreate()
,您一律會在自己的應用程式中覆寫這個方法。您將在稍後的程式碼研究室中進一步瞭解生命週期方法。
在onCreate()
中,您會指定與活動相關聯的版面配置,並加載該版面配置。setContentView()
方法會執行這兩項作業。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
setContentView()
方法會使用 R.layout.activity_main
參照版面配置,而 R.layout.activity_main
實際上是整數參照。建構應用程式時,系統會產生 R
類別。R
類別包含應用程式的所有資產,包括 res
目錄的內容。
在本例中,R.layout.activity_main
是指產生的 R
類別、layout
資料夾和 activity_main.xml
版面配置檔案。(資源不含副檔名)。您會在 R
類別中,使用類似的參照來參照應用程式的許多資源,包括圖片、字串和版面配置檔案中的元素。
步驟 2:檢查及探索應用程式版面配置檔案
應用程式中的所有活動,在應用程式的 res/layout
目錄中都有相關聯的版面配置檔案。版面配置檔案是 XML 檔案,可表示活動的實際樣貌。版面配置檔案會定義檢視區塊,以及檢視區塊在畫面上的顯示位置。
檢視區塊是擴充 View
類別的項目,例如文字、圖片和按鈕。檢視畫面類型眾多,包括 TextView
、Button
、ImageView
和 CheckBox
。
在這項工作中,您將檢查及修改應用程式版面配置檔案。
- 在「Project」>「Android」窗格中,依序展開「res」>「layout」,然後按兩下「activity_main.xml」。版面配置設計編輯器隨即開啟。Android Studio 內建這個編輯器,可讓您以視覺化方式建構應用程式的版面配置,並預覽版面配置設計。在後續的程式碼研究室中,您將進一步瞭解設計編輯器。
- 如要以 XML 格式檢視版面配置檔案,請按一下視窗底部的「Text」分頁標籤。
- 刪除版面配置編輯器中所有現有的 XML 程式碼。如果您使用 Android Studio 設計編輯器,新專案的預設版面配置是很好的起點。在本課程中,您將使用基礎 XML 從頭建構新的版面配置。
- 複製這段程式碼並貼到版面配置中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
現在檢查程式碼:
- 版面配置的頂層或根元素是
<LinearLayout>
元素。LinearLayout
檢視畫面是ViewGroup
。檢視區塊群組是容器,可容納其他檢視畫面,並協助指定檢視畫面在螢幕上的位置。
您新增至版面配置的所有檢視畫面和檢視區塊群組,都會整理成檢視畫面階層,而最上層的 XML 元素就是該階層的根。根層級檢視畫面可以包含其他檢視畫面和檢視區塊群組,而所含的檢視區塊群組可以包含其他檢視畫面和檢視區塊群組。應用程式執行時,XML 版面配置檔案中的檢視區塊階層會在版面配置加載時,變成物件階層。在本例中,根檢視區塊群組是線性版面配置,可依線性方式 (垂直或水平) 整理子項檢視區塊。
新 Android 專案的預設根目錄為ConstraintLayout
,可與設計編輯器順暢協調運作。這個應用程式會使用LinearLayout
檢視區塊群組,比限制條件版面配置簡單。我們會在下一堂課中,進一步說明檢視區塊群組和限制版面配置。 - 在
LinearLayout
標記中,請注意android:layout_width
屬性。這個LinearLayout
的寬度設為match parent
,因此寬度與父項相同。由於這是根層級檢視區塊,版面配置會展開至螢幕的完整寬度。 - 請注意,
android:layout_height
屬性已設為wrap_content
。這項屬性可讓LinearLayout
的高度符合其中所有檢視區塊的總高度,目前只有TextView
。 - 檢查
<TextView>
元素。這個TextView
會顯示文字,是 DiceRoller 應用程式中唯一的視覺元素。android:text
屬性會保留要顯示的實際字串,在本例中為字串"Hello World!"
- 請注意
<TextView>
元素中的android:layout_width
和android:layout_height
屬性,兩者都設為wrap_content
。文字檢視區塊的內容就是文字本身,因此檢視區塊只會佔用文字所需的空間。
如果使用者無法擲骰子並查看結果,擲骰子應用程式就沒什麼用處。首先,請在版面配置中新增擲骰子的按鈕,並新增顯示使用者擲出骰子值的文字。
步驟 1:在版面配置中新增按鈕
- 在文字檢視區塊下方的版面配置中新增
Button
元素,方法是輸入 <Button,然後按下 Return 鍵。系統會顯示Button
區塊,結尾為/>
,並包含layout_width
和layout_height
屬性。
<Button
android:layout_width=""
android:layout_height="" />
- 將
layout_width
和layout_height
屬性都設為"wrap_content"
。有了這些值,按鈕的寬度和高度就會與所含的文字標籤相同。 - 在按鈕中新增
android:text
屬性,並指定「Roll」的值。現在「Button」元素如下所示:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Roll" />
如果是 Button
檢視畫面,text
屬性就是按鈕的標籤。在版面配置編輯器中,屬性會以黃色醒目顯示,表示提示或警告。在本例中,黃色醒目顯示是因為按鈕標籤中是以硬式編碼方式設定字串 "Roll"
,但該字串應為資源。我們會在下一節中說明字串資源。
步驟 2:擷取字串資源
建議您將所有應用程式字串放在獨立檔案中,而不是以硬式編碼方式寫入版面配置或程式碼檔案。這個檔案名為 strings.xml
,位於應用程式資源的 res/values/
目錄中。
將字串放在個別檔案中,可讓您更輕鬆地管理字串,尤其是在重複使用這些字串時。此外,您必須為每種語言建立字串資源檔案,因此字串資源是翻譯及本地化應用程式的必要條件。
Android Studio 會提供提示和警告,提醒您將字串放入資源檔案。
- 在
<Button>
代碼的android:text
屬性中,按一下「Roll」字串一次。 - 按下
Alt+Enter
鍵 (macOS 則為Option+Enter
鍵),然後從彈出式選單中選取「Extract string resource」。 - 輸入
roll_label
做為資源名稱。 - 按一下「確定」。系統會在
res/values/string.xml
檔案中建立字串資源,並將 Button 元素中的字串替換為該資源的參照:android:text="@string/roll_label"
- 在「Project」>「Android」窗格中,展開「res」>「values」,然後按兩下「strings.xml」,即可在
strings.xml
檔案中查看字串資源:
<resources>
<string name="app_name">DiceRoller</string>
<string name="roll_label">Roll</string>
</resources>
步驟 3:設定檢視區塊的樣式和位置
版面配置現在包含一個 TextView
和一個 Button
檢視區塊。在這項工作中,您將排列檢視區塊群組中的檢視區塊,讓畫面看起來更吸引人。
- 按一下「設計」分頁標籤,即可預覽版面配置。目前兩個檢視畫面並排顯示,並向上推到螢幕頂端。
- 按一下「Text」分頁標籤,返回 XML 編輯器。在
LinearLayout
標記中加入android:orientation
屬性,並指定一個"vertical"
的值。<LinearLayout>
元素現在應如下所示:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
LinearLayout
檢視區塊群組會將所含檢視區塊依序排列成一行,可以是水平列,也可以是垂直堆疊。預設為水平。由於您希望 TextView
堆疊在 Button
的上方,因此請將方向設為垂直。現在,設計的外觀如下所示,按鈕位於文字下方:
- 在
TextView
和Button
中加入android:layout_gravity
屬性,並指定"center_horizontal"
的值。這會沿著水平軸中心對齊兩個檢視區塊。TextView 和 Button 元素現在應如下所示:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Hello World!" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/roll_label" />
- 將
android:layout_gravity
屬性新增至線性版面配置,並指定"center_vertical"
的值。您的LinearLayout
元素現在應如下所示:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
tools:context=".MainActivity">
- 如要放大文字檢視區塊中的文字,請將
android:textSize
屬性新增至<TextView>
元素,並將值設為"30sp"
。sp 是「可縮放像素」的縮寫,用來測量文字大小,不受裝置螢幕品質影響。TextView 元素現在應如下所示:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="30sp"
android:text="Hello World!" />
- 編譯並執行應用程式。
現在文字和按鈕都已妥善放置,文字檢視畫面中的文字也變大了。這個按鈕目前還沒有任何功能,因此點選後不會有任何反應。接下來,您將處理這項工作。
步驟 4:在程式碼中取得按鈕的參照
MainActivity
中的 Kotlin 程式碼負責定義應用程式的互動式部分,例如輕觸按鈕時會發生的動作。如要編寫在按鈕點選時執行的函式,您需要在 MainActivity 中,取得已膨脹版面配置的 Button 物件參照。如要取得按鈕的參照:
- 在 XML 檔案中為
Button
指派 ID。 - 在程式碼中使用
findViewById()
方法,取得具有特定 ID 的View
參照。
取得 Button
檢視區塊的參照後,您就可以在應用程式執行時,呼叫該檢視區塊的方法來動態變更檢視區塊。舉例來說,您可以新增點擊處理常式,在使用者輕觸按鈕時執行程式碼。
- 如果
activity_main.xml
版面配置檔案尚未開啟,請開啟該檔案,然後按一下「Text」(文字) 分頁標籤。 - 將
android:id
屬性新增至按鈕,並為其命名 (本例中為「@+id/roll_button"
」)。現在<Button>
元素看起來會像這樣:
<Button
android:id="@+id/roll_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/roll_label" />
在 XML 版面配置檔案中建立檢視區塊的 ID 時,Android Studio 會在產生的 R
類別中,以該 ID 的名稱建立整數常數。因此,如果您將檢視區塊命名為 roll_button
,Android Studio 會在 R
類別中產生並建立名為 roll_button
的整數常數。ID 名稱的 "@+id"
前置字串會告知編譯器將該 ID 常數新增至 R 類別。XML 檔案中的所有檢視 ID 都必須有這個前置字元。
- 開啟
MainActivity
Kotlin 檔案。在onCreate()
內,於setContentView()
後方新增這行程式碼:
val rollButton: Button = findViewById(R.id.roll_button)
使用 findViewById()
方法取得 XML 類別中定義的檢視區塊 View
參照。在本例中,您會從 R
類別和 ID roll_button
取得 Button
參照,並將該參照指派給 rollButton
變數。
- 請注意,Android Studio 會以紅色醒目顯示
Button
類別,並加上底線,表示這是未解決的參照,您必須先匯入這個類別,才能使用。系統也可能會顯示工具提示,指出完整的類別名稱: - 按下
Alt+Enter
鍵 (Mac 上的Option+Enter
鍵),接受完整類別名稱。
步驟 5:新增點按處理常式來顯示訊息方塊
點擊事件處理常式是一種方法,每當有使用者點選或輕觸可點擊的 UI 元素 (例如按鈕) 時,就會叫用這個方法。如要建立點擊事件處理常式,請備妥下列項目:
- 執行某些作業的方法。
setOnClickHandler()
方法,可將Button
連線至處理常式方法。
在這項工作中,您會建立點擊處理常式方法,顯示 Toast
。(浮動式訊息是指在畫面上短暫顯示的訊息)。將點擊事件處理常式方法連結至 Button
。
- 在
MainActivity
類別的onCreate()
之後,建立名為rollDice()
的私有函式。
private fun rollDice() {
}
- 在
rollDice()
方法中新增這一行,即可在呼叫rollDice()
時顯示Toast
:
Toast.makeText(this, "button clicked",
Toast.LENGTH_SHORT).show()
如要建立祝賀訊息,請呼叫 Toast.makeText()
方法。這個方法需要下列三項條件:
Context
物件。Context
物件可讓您與 Android OS 通訊,並取得目前狀態的相關資訊。您需要在此處使用Context
,這樣Toast
物件才能告知作業系統顯示浮動式訊息。由於AppCompatActivity
是Context
的子類別,您只要使用this
關鍵字即可取得背景資訊。- 要顯示的訊息,這裡為
"button clicked"
。 - 顯示訊息的持續時間。結尾的
show()
方法會顯示浮動式訊息。
- 在
onCreate()
中,呼叫findViewById()
後新增這行程式碼,將rollDice()
指派為rollButton
物件的點擊事件處理常式:
rollButton.setOnClickListener { rollDice() }
現在,MainActivity
類別的完整定義如下所示:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.roll_button)
rollButton.setOnClickListener { rollDice() }
}
private fun rollDice() {
Toast.makeText(this, "button clicked",
Toast.LENGTH_SHORT).show()
}
}
- 編譯並執行應用程式。每次輕觸按鈕時,畫面上都會顯示訊息。
在這項工作中,您會修改 rollDice()
方法,變更 TextView
中的文字。在第一個步驟中,您要將該文字從 "Hello World!"
變更為字串 "Dice Rolled!"
。第二個步驟是顯示介於 1 到 6 之間的隨機數字。
步驟 1:顯示字串
- 開啟
activity_main.xml
,並在TextView
中新增 ID。
android:id="@+id/result_text"
- 開啟
MainActivity
。在rollDice()
方法中,對顯示Toast
的行執行註解排除。 - 使用
findViewById()
方法,依 ID 取得TextView
的參照。將參照指派給resultText
變數。
val resultText: TextView = findViewById(R.id.result_text)
- 將新字串指派給
resultText.text
屬性,即可變更顯示的文字。您可以忽略將該字串擷取到資源中的提示,這只是暫時的字串。
resultText.text = "Dice Rolled!"
- 編譯並執行應用程式。請注意,輕觸「Roll」按鈕現在會更新
TextView
。
步驟 2:顯示隨機號碼
最後,在這項工作中,您要為按鈕點擊事件新增隨機性,模擬擲骰子。每次點選或輕觸按鈕時,程式碼會從 1 到 6 隨機挑選一個數字,並更新 TextView
。產生隨機數字並非 Android 專屬工作,您可以使用 Random
類別完成這項工作。
- 在
rollDice()
方法頂端,使用Random.nextInt()
方法取得介於 1 到 6 之間的隨機數字:
val randomInt = Random().nextInt(6) + 1
- 將
text
屬性設為隨機整數的值 (以字串形式):
resultText.text = randomInt.toString()
- 編譯並執行應用程式。每次輕觸「Roll」按鈕時,文字檢視區塊中的數字都會變更。
Android Studio 專案:DiceRoller
挑戰:在應用程式中新增第二個標示為「Count Up」的按鈕,顯示在「Roll」按鈕下方。輕觸「Count Up」按鈕時,系統應取得結果文字檢視區塊的目前值,並將該值加 1,然後更新文字檢視區塊。請務必處理下列極端情況:
- 如果結果文字檢視區塊尚未包含數字 (也就是說,文字檢視區塊仍有預設的「Hello World」字串),請將結果文字設為 1。
- 如果數字已是 6,則不採取任何行動。
程式設計挑戰解決方案程式碼
Android Studio 專案:DiceRoller-challenge
活動
MainActivity
是AppCompatActivity
的子類別,而AppCompatActivity
又是Activity
的子類別。Activity
是 Android 的核心類別,負責繪製 Android 應用程式 UI 和接收輸入事件。- 所有活動都有相關聯的版面配置檔案,也就是應用程式資源中的 XML 檔案。版面配置檔案會以活動命名,例如
activity_main.xml
。 MainActivity
中的setContentView()
方法會將版面配置與活動建立關聯,並在活動建立時加載該版面配置。- 版面配置擴充程序會將 XML 版面配置檔案中定義的檢視區塊,轉換 (或「擴充」) 為記憶體中的 Kotlin 檢視區塊物件。版面配置加載後,
Activity
即可將這些物件繪製到畫面上,並動態修改這些物件。
Views
- 應用程式版面配置中的所有 UI 元素都是
View
類別的子類別,稱為「檢視區塊」。TextView
和Button
是檢視區塊的範例。 View
元素可分組到ViewGroup
中。檢視區塊群組可做為容器,裝載其中的檢視畫面或其他檢視區塊群組。LinearLayout
是以線性方式排列檢視區塊的檢視區塊群組範例。
查看屬性
android:layout_width
和android:layout_height
屬性會指出檢視區塊的權重和高度。match_parent
值會將檢視區塊延展至父項的寬度或高度。wrap_content
值會縮小檢視區塊,以配合檢視區塊的內容。android:text
屬性會指出檢視區塊應顯示的文字 (如果該檢視區塊會顯示文字)。如果是按鈕,android:text
是按鈕標籤。LinearLayout
檢視區塊群組中的android:orientation
屬性會排列所含的檢視區塊元素。horizontal
值會從左到右排列檢視區塊。值為vertical
時,系統會由上到下排列檢視區塊。android:layout_gravity
屬性會決定檢視區塊及其所有子項的放置位置。android:textSize
屬性會定義文字檢視區塊中的文字大小。文字大小是以 sp 單位 (可縮放像素) 指定。使用 sp 單位時,您可以獨立調整文字大小,不受裝置螢幕品質影響。
字串
- 請勿以硬式編碼的方式將字串寫入版面配置,而是使用字串資源。
- 字串資源會包含在
values/res/string.xml
檔案中。 - 如要擷取字串,請使用
Alt+Enter
(Mac 上的Option+Enter
)。從彈出式選單中選取「Extract string resources」。
使用檢視畫面
- 如要將 Kotlin 程式碼連結至您在版面配置中定義的檢視區塊,您需要在檢視區塊膨脹後取得檢視區塊物件的參照。在版面配置中為檢視區塊指派 ID (
android:id
),然後使用findViewById()
方法取得相關聯的檢視區塊物件。 - 在 XML 版面配置檔案中建立檢視區塊的 ID 時,Android Studio 會在產生的
R
類別中,以該 ID 的名稱建立整數常數。然後,您可以在findViewById()
方法中使用該R.id
參照。 - 您可以直接在 Kotlin 程式碼中,依屬性名稱設定檢視區塊物件的屬性。舉例來說,文字檢視區塊中的文字是由 XML 中的
android:text
屬性定義,在 Kotlin 中則是由text
屬性定義。 - 點擊處理常式是一種方法,會在使用者點選或輕觸 UI 元素時叫用。如要將點擊事件處理常式方法附加至檢視區塊 (例如按鈕),請使用
setOnClickListener()
方法。
使用 Toast
浮動式訊息是一種檢視畫面,會在小型彈出式視窗中向使用者顯示簡單訊息。
如要建立快訊,請使用三個引數,在 Toast
類別上呼叫 makeText()
工廠方法:
- 應用程式的情境
Activity
- 要顯示的訊息,例如字串資源
- 時間長度,例如
Toast.LENGTH_SHORT
如要顯示浮動式訊息,請呼叫 show()
。
Udacity 課程:
Android 開發人員說明文件:
- 認識 Android Studio
- 版面配置
View
Button
TextView
- 應用程式資源總覽
- 輸入事件總覽
findViewById()
setOnClickListener()
Context
其他:
本節列出的作業可由課程講師指派給學習本程式碼研究室的學員。講師可自由採取以下行動:
- 視需要指派作業。
- 告知學員如何繳交作業。
- 為作業評分。
講師可以視需求使用全部或部分建議內容,也可以自由指派任何其他合適的作業。
如果您是自行學習本程式碼研究室,不妨利用這些作業驗收學習成果。
變更應用程式
開啟 DiceRoller 應用程式,在「Roll」按鈕下方新增標示為「Reset」的按鈕。讓該按鈕將結果文字檢視畫面重設為 0。
回答問題
第 1 題
Activity
上的哪個方法會加載應用程式的版面配置,讓相關檢視畫面以物件形式呈現?
onCreate()
setClickListener()
setContentView()
show()
第 2 題
您會使用哪種檢視屬性來設定檢視區塊的寬度,以便配合內容調整?
android:view_width="wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="match_parent"
提交應用程式以供評分
請確認應用程式具備下列功能:
- 應用程式版面配置應包含一個文字檢視畫面和兩個按鈕。
- 應用程式的程式碼應設定兩個點擊處理常式,每個按鈕各一個。
- 重設文字檢視區塊的點擊事件處理常式應將文字屬性設為 0。
開始下一個課程:
如要查看本課程其他程式碼研究室的連結,請參閱 Android Kotlin 基礎知識程式碼研究室登陸頁面。