許多初學者在目標 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) 即可接收。
public static final String 常數,避免拼字錯誤。Activity Result APIs(registerForActivityResult)替代已棄用的 startActivityForResult。