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

Android开发:如何将首个Activity的TextView数据传递至第三个Activity

把第一个Activity的随机字符串传到第三个Activity?看这几步就搞定!

你现在的需求是走「Activity1 → Activity2 → Activity3」的流程,把第一个Activity里生成的随机字符串传递到最终的第三个Activity对吧?目前你代码里有直接从Activity1跳转到第三个Activity的方法,但实际是要经过第二个Activity中转,那咱们只需要在中间的第二个Activity里把数据“接力”传递下去就可以了,具体操作步骤如下:

步骤1:完善第二个Activity,接收并传递数据

首先你需要补全第二个Activity(CheckCandidateID)的代码——先接收来自第一个Activity的字符串,然后在点击跳转按钮时,把这个字符串再传给第三个Activity。

假设你的第二个Activity布局里有一个用于跳转的按钮goToThirdBtn,那代码可以这么写:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class CheckCandidateID extends AppCompatActivity {
    private Button goToThirdBtn;
    private String receivedRandomStr; // 存储从第一个Activity拿到的随机字符串

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_check_candidate_id);

        // 第一步:接收来自第一个Activity的随机字符串
        receivedRandomStr = getIntent().getStringExtra("Extra_Message");

        // 第二步:给跳转按钮设置点击事件,把数据传给第三个Activity
        goToThirdBtn = findViewById(R.id.goToThirdBtn);
        goToThirdBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intentToThird = new Intent(CheckCandidateID.this, Try.class);
                // 用和第三个Activity接收时对应的键名传递数据
                intentToThird.putExtra("Extra_Message_Send", receivedRandomStr);
                startActivity(intentToThird);
            }
        });
    }
}

步骤2:确认第一个Activity的跳转逻辑(无需修改)

你第一个Activity里的sendID_one()、sendID_Two()、sendID_Three()方法已经正确把对应的随机字符串传递给第二个Activity了,这部分完全没问题,比如sendID_one()的代码:

public void sendID_one(){
    String message = randomOne.getText().toString();
    Intent check = new Intent(SelectRandomNumber.this, CheckCandidateID.class);
    check.putExtra("Extra_Message",message);
    startActivity(check);
}

步骤3:第三个Activity的接收逻辑(无需修改)

你第三个Activity(Try)的代码已经能正确接收传递过来的字符串了,这部分保持原样就行:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class Try extends AppCompatActivity {
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_try);
        tv = (TextView) findViewById(R.id.test);
        String s = getIntent().getStringExtra("Extra_Message_Send");
        tv.setText(s);
    }
}

小提醒

  • 要注意传递和接收数据时的键名要完全一致,比如这里的Extra_Message(第一个到第二个)和Extra_Message_Send(第二个到第三个),写错的话会拿到null哦。
  • 如果第二个Activity还有其他业务逻辑,只需要保证在跳转第三个Activity时,把存储的receivedRandomStr传过去就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:33:26