在 Android 開發中,Activity 之間的數據傳遞是基礎且核心的技能。許多初學者常被「如何將 ListView 某條目點擊後的數據,傳遞給下一個頁面的特定控件」這類問題困擾。本文將通過一個具體場景——點擊列表項目將學校名稱傳遞給下一頁 Button 旁的 TextView——詳細講解 Intent 傳值的標準寫法。
Android 使用 Intent 作為組件間通信的載體,配合 putExtra(key, value) 存入數據,在目標 Activity 用 getIntent().getStringExtra(key) 取出。這是最經典、最穩健的跨頁面傳值方式。
// 在 ListView 的 OnItemClickListener 中
String schoolName = sortListView.getItemAtPosition(position).toString();
Intent intent = new Intent(StartChooseSchoolActivity.this, StartRegisteredActivity.class);
intent.putExtra("school_name", schoolName); // key 建議語義化
startActivity(intent); // 注意:原代碼寫錯為 startActvity,正確是 startActivity
Intent intent = getIntent();
String schoolName = intent.getStringExtra("school_name");
if (schoolName != null) {
textViewNextToButton.setText(schoolName); // 找到 Button 旁的 TextView 並設置文本
}
startActivity,不是 startActvity。若需傳遞多個字段或自定義對象,可讓模型類實現 Serializable 或 Parcelable 接口,使用 putExtra(key, object) 傳遞整個對象,取出時用 getSerializableExtra 或 getParcelableExtra。Parcelable 效能更高,推薦實際項目使用。
掌握這套「Intent 鍵值對傳值」模式,基本能覆蓋 90% 的 Activity 間簡單數據傳遞場景。多動手練習,很快就能從「小白」進階為熟練開發者。