iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
Software Development

從 Vibe Coding 到可維護專案:用 Hermes Agent 重讀 RoomRush Android 專題系列 第 4

Day 4 | 一個空教室查詢 App,首頁到底負責什麼?

  • 分享至 

  • xImage
  •  

前言:首頁只是放按鈕,還是整個查詢流程的第一個分岔點?

前一天的文章介紹到AndroidManifest.xml ,它是 RoomRush 的 App 入口地圖,告訴 Android 哪個 Activity 是第一個畫面,但它自己不是畫面。

而今天要讀的檔案是 MainActivity.kt ,它的上游就是AndroidManifest.xml ,在這裡面,它設定了 MainActivity 是 App 的首頁,負責載入首頁畫面、設定大樓下拉選單,並根據按鈕把使用者帶到查詢流程管理者登入流程


一開始我認為

一開始,我知道這個檔案是 RoomRush 的首頁,當初設計首頁能先選大樓,以方便下一頁的查詢內容,右上角也有可以切換成管理者模式的按鈕。
這部分是我當時設計畫面時,覺得比較直覺操作的方法,可以一目了然整個 App 的重點。

https://ithelp.ithome.com.tw/upload/images/20260913/20177899BfKRq4OU1J.png

實際讀完後,MainActivity.kt 負責什麼

和 Hermes Agent 一起重讀檔案後,我理解到MainActivity.kt 是首頁 Activity,負責首頁 UI 的互動邏輯,並把 activity_main.xml 設定成這個 Activity 的畫面內容。

從程式碼細節來看,首頁最核心的任務主要分為兩件事:設定選單處理按鈕跳頁

1. 設定大樓下拉選單(Spinner)

當時我是透過 ArrayAdapter 把字串陣列(Array)轉成 Spinner 可以顯示的選項:

val buildingSpinner = findViewById<Spinner>(R.id.building_spinner)
val buildings = arrayOf("聖言樓", "進修部大樓")
val buildingAdapter = ArrayAdapter(this, R.layout.custom_spinner_item, buildings)
buildingSpinner.adapter = buildingAdapter
  • 技術細節: ArrayAdapter 在這裡扮演了資料與 UI 元件之間的橋樑,把字串陣列(Array)轉換成 Spinner 可以顯示的下拉選單選項。

2. 查詢按鈕:跳頁並傳遞條件

選擇完大樓後,按下查詢按鈕觸發的邏輯如下:

val selectedBuilding = buildingSpinner.selectedItem.toString()
val intent = Intent(this, QueryResultActivity::class.java).apply {
    putExtra("building", selectedBuilding)
}
startActivity(intent)
  • 關鍵發現: 這段程式碼不單純只是「跳頁(startActivity)」,更重要的任務是將使用者選到的 selectedBuilding 包進 Intent 的 Extra 中,當作傳給下一個頁面的第一道查詢條件。

它接在哪一條流程上

承接 AndroidManifest.xml ,我們目前可以知道流程大概是:

AndroidManifest.xml
    ↓
MainActivity.kt
    ↓
使用者選擇大樓
    ↓
按下「查詢」
    ↓
建立 Intent、帶入 building
    ↓
前往 QueryResultActivity

Hermes Agent 幫我檢查出的重點

MainActivity 是 RoomRush 的首頁,負責讓使用者選擇大樓,並透過 Intent 把大樓名稱傳給 QueryResultActivity

  • 它不負責查資料庫,也不負責讀取資料庫。
  • 它不是「篩選大樓」,而是「收集第一個查詢條件:大樓」,然後透過 Intent 把這個條件交給下一個畫面。

真正的篩選/查詢流程會在後面的 QueryResultActivity 與 QueryResultViewModel 中繼續發生。

小結

讀完 MainActivity 後,我發現首頁雖然看起來只是選大樓和按查詢,但它其實決定了 RoomRush 查詢流程的第一個條件。首頁不直接查詢空教室,而是把使用者選到的大樓包進 Intent,交給下一個頁面處理。

MainActivity 是首頁,負責讓使用者選大樓,並用 Intent 把 building 傳給查詢頁。

下一篇:使用者選了大樓、星期、節次之後,資料去哪了?

讀完了 App 的門面後,下一篇就是要了解空教室查詢系統最重要的查詢部分-QueryResultActivity.kt

使用者選了大樓、星期、節次之後,資料到底去哪了?少了這個核心查詢頁,RoomRush 就不能稱作是一個合格的空教室查詢系統了!


上一篇
Day 3 | 我先問自己:這個 Android App 到底從哪裡開始?
下一篇
Day 5 | 使用者選了大樓、星期、節次之後,資料去哪了?
系列文
從 Vibe Coding 到可維護專案:用 Hermes Agent 重讀 RoomRush Android 專題7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言