java - 如何将 TextView 数据从第一个 Activity 发送到第三个 Activity

标签 java android android-activity

我正在开发一个项目,其中有 3 项 Activity 。每个 Activity 都有自己的按钮,单击该按钮即可启动下一个 Activity 。第一个 Activity 有一个显示随机字符串的 TextView 。当我在第一个 Activity 中按下按钮时,第二个 Activity 将开始。当我在第二个 Activity 中按下按钮时,第三个 Activity 开始。但我想知道如何将随机字符串从第一个 Activity 发送到第三个 Activity 。

第一个 Activity :

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

import java.util.Random;

public class SelectRandomNumber extends AppCompatActivity {


    private Button generateStringBtn;
    private TextView randomOne;
    private TextView randomTwo;
    private TextView randomThree;


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

        generateStringBtn = (Button) findViewById(R.id.generateRandomBtn);
        randomOne = (TextView) findViewById(R.id.randomStringOne);
        randomTwo = (TextView) findViewById(R.id.randomStringTwo);
        randomThree = (TextView) findViewById(R.id.randomStringThree);

        generateStringBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                randomOne.setText(randomString(173));
                randomTwo.setText(randomString(173));
                randomThree.setText(randomString(173));

            }
        });

        randomOne.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sendID_one();
            }
        });



    }

    public String randomString(int length){
        char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".toCharArray();
        StringBuilder stringBuilder = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < length; i++){
            char c = chars[random.nextInt(chars.length)];
            stringBuilder.append(c);
        }
        return stringBuilder.toString();
    }

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

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

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

    public void send(){
        Intent check = new Intent(SelectRandomNumber.this, Try.class);  //for sending data to third activity
        check.putExtra("Extra_Message_Send",randomOne.getText().toString());
        startActivity(check);
    }

}

第三个 Activity :

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);



    }
}

最佳答案

如果您想从第二个 Activity 开始第三个 Activity ,您必须在第二个 Activity 中发送字符串,然后在第三个 Activity 中发送。最好在第二个和第三个 Activity 中发送所有三个字符串,这样您就可以来回:

String message1 = randomOne.getText().toString();
String message2 = randomTwo.getText().toString();
String message3 = randomThree.getText().toString();

check.putExtra("Extra_Message1",message1);
check.putExtra("Extra_Message2",message2);
check.putExtra("Extra_Message3",message3);

然后您还必须将这些数据从第二个 Activity 传递到第三个 Activity 。

关于java - 如何将 TextView 数据从第一个 Activity 发送到第三个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432818/

相关文章:

java - 我在 Java 中的 JOptionPane 没有继续到下一个窗口?

java - 在实用程序类或继承自基本 Activity 之间做出决定

android - 如何使用 Chrome 自定义选项卡进行 OAuth 2.0 登录 (Fitbit API)

java - 转换上下文时出现 IllegalStateException

java - 使用正则表达式在 Java 中提取日期的问题

java - 使用 sendRedirect URL 传递 header 参数

java - 根据数量而不是时间排序

Android 覆盖显式 Intent

android - 将参数从 Activity 传递到服务中的线程

android - 如何使用主页小部件启动 Activity