You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何实现Activity1到Activity2再到Activity3的数据传递

嘿,这个连续数据传递的需求其实很简单,就是把你已经掌握的Intent+putExtra逻辑多复用一次就行,我给你拆解成清晰的步骤:

实现Activity1 → Activity2 → Activity3 数据传递的完整流程

1. Activity1 向 Activity2 传递数据

这部分你已经熟悉了,不过还是再梳理一遍确保细节到位:

  • 在Activity1中,给触发跳转的视图设置点击事件,创建Intent并通过putExtra()存入要传递的数据,最后启动Activity2:
// Activity1 中的点击事件代码示例
yourDataItemView.setOnClickListener(v -> {
    // 替换成你实际要传递的数据,比如从本地存储/接口获取的内容
    String targetData = "来自Activity1的原始数据";
    Intent intentToA2 = new Intent(Activity1.this, Activity2.class);
    // 定义统一的KEY,后面取数据要对应,建议写成常量避免拼写错误
    intentToA2.putExtra("DATA_FROM_A1", targetData);
    startActivity(intentToA2);
});

2. Activity2 接收数据并转发给 Activity3

Activity2需要先拿到Activity1传过来的数据,再在TextView的点击事件中把数据传给Activity3:

第一步:接收Activity1的数据

在Activity2的onCreate()方法中,通过getIntent()获取传递过来的数据:

// Activity2 的 onCreate 方法内
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2);
    
    TextView transferTextView = findViewById(R.id.your_text_view_id);
    // 接收从A1传来的数据
    String dataFromA1 = getIntent().getStringExtra("DATA_FROM_A1");
    // 把数据显示到TextView上(可选,根据你的需求)
    transferTextView.setText(dataFromA1);
}

第二步:转发数据到Activity3

给TextView设置点击事件,重复Intent+putExtra的逻辑,把收到的数据传给Activity3:

// 接上面的代码,在Activity2的onCreate中添加点击事件
transferTextView.setOnClickListener(v -> {
    Intent intentToA3 = new Intent(Activity2.this, Activity3.class);
    // 把从A1收到的数据转发给A3,KEY可以重新定义,也可以复用之前的
    intentToA3.putExtra("DATA_FROM_A2", dataFromA1);
    startActivity(intentToA3);
});

3. Activity3 接收数据并显示到EditText

最后在Activity3的onCreate()方法中,取出传递过来的数据并设置到EditText中:

// Activity3 的 onCreate 方法内
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_3);
    
    EditText targetEditText = findViewById(R.id.your_edit_text_id);
    // 接收从A2转发过来的数据
    String dataFromA2 = getIntent().getStringExtra("DATA_FROM_A2");
    // 设置到EditText中
    targetEditText.setText(dataFromA2);
}

几个关键注意点

  • KEY值要统一:putExtra()和对应的getStringExtra()使用的KEY必须完全一致,建议把KEY定义成全局常量(比如在一个单独的Constants类中),避免手动拼写错误;
  • 适配不同数据类型:如果传递的不是String类型,比如int、boolean或者自定义对象,要对应使用getIntExtra()、getBooleanExtra(),自定义对象则需要实现Serializable或Parcelable接口,再用getSerializableExtra()/getParcelableExtra()获取;
  • 确保Activity已注册:所有Activity都要在AndroidManifest.xml中注册,否则启动时会抛出ActivityNotFoundException。

内容的提问来源于stack exchange,提问作者MohammadAli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:14:05