首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 數據傳遞:從 ListView 點擊項目傳值到另一 Activity 的 TextView

     編輯:程式設計綜合問答

在 Android 開發中,Activity 之間的數據傳遞是基礎且核心的技能。許多初學者常被「如何將 ListView 某條目點擊後的數據,傳遞給下一個頁面的特定控件」這類問題困擾。本文將通過一個具體場景——點擊列表項目將學校名稱傳遞給下一頁 Button 旁的 TextView——詳細講解 Intent 傳值的標準寫法。

核心思路:Intent + putExtra / getStringExtra

Android 使用 Intent 作為組件間通信的載體,配合 putExtra(key, value) 存入數據,在目標 Activity 用 getIntent().getStringExtra(key) 取出。這是最經典、最穩健的跨頁面傳值方式。

具體實現步驟

1. 在源 Activity(如 StartChooseSchoolActivity)中獲取點擊項目的數據並啟動目標 Activity

// 在 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

2. 在目標 Activity(如 StartRegisteredActivity)的 onCreate 中接收並顯示

Intent intent = getIntent();
String schoolName = intent.getStringExtra("school_name");
if (schoolName != null) {
    textViewNextToButton.setText(schoolName); // 找到 Button 旁的 TextView 並設置文本
}

常見坑點提醒

  • 拼寫一致性:putExtra 和 getStringExtra 的 key 必須完全一致,建議定義為常量避免手誤。
  • 空值保護:目標 Activity 一定要判斷 getStringExtra 返回是否為 null,防止崩潰。
  • 方法名正確:啟動 Activity 是 startActivity,不是 startActvity。

進階:傳遞對象或多數據

若需傳遞多個字段或自定義對象,可讓模型類實現 Serializable 或 Parcelable 接口,使用 putExtra(key, object) 傳遞整個對象,取出時用 getSerializableExtra 或 getParcelableExtra。Parcelable 效能更高,推薦實際項目使用。

掌握這套「Intent 鍵值對傳值」模式,基本能覆蓋 90% 的 Activity 間簡單數據傳遞場景。多動手練習,很快就能從「小白」進階為熟練開發者。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved