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

Android Activity 間傳值全攻略:startActivityForResult 與 Intent 實戰

     編輯:程式設計疑難解答

常見誤區:getIntent() 用錯方法

許多初學者在目標 Activity 中使用 getIntent().putExtra(...) 試圖「取值」,這其實是「存值」的方法。正確做法是使用對應的 getXxxExtra() 方法。

標準傳值流程

發起端

Intent intent = new Intent(ActivityA.this, ActivityB.class);
String data = "my data";
intent.putExtra("key_string", data);
startActivityForResult(intent, REQUEST_CODE); // REQUEST_CODE 用於識別回調

接收端

// 在 ActivityB 的 onCreate 中
Intent intent = getIntent();
String received = intent.getStringExtra("key_string"); // 記得檢查 null

進階:返回結果給上一頁

若需回傳資料,在 ActivityB 中:

Intent result = new Intent();
result.putExtra("result_key", "處理完成");
setResult(RESULT_OK, result);
finish();

ActivityA 覆寫 onActivityResult(int requestCode, int resultCode, Intent data) 即可接收。

注意事項

  • Key 名稱建議定義為 public static final String 常數,避免拼字錯誤。
  • 大量資料請勿放入 Intent(有大小限制),改用 SharedPreferences、資料庫或單例/ ViewModel 共享。
  • AndroidX 推薦使用 Activity Result APIs(registerForActivityResult)替代已棄用的 startActivityForResult。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved