Как отправить текстовое представление данных с 1-го занятия на 3-е занятие - PullRequest
0 голосов
/ 30 марта 2019

Я разрабатываю проект, в котором у меня есть 3 вида деятельности.У каждого действия есть своя собственная кнопка, которая при нажатии запускает следующее действие.1-й вид деятельности имеет текстовое представление, которое отображает случайную строкуКогда я нажимаю кнопку в первом упражнении, начинается второе занятие.Когда я нажимаю кнопку во втором упражнении, начинается третье занятие.Но я хочу знать, как отправить случайную строку из 1-го занятия в 3-е занятие.

Первое занятие:

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

}

Третье занятие:

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



    }
}

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Если вы хотите начать 3-е действие со 2-го упражнения, вы должны отправить свою строку во 2-е действие, а затем в 3-е действие.Лучше отправьте все три строки во 2-м и 3-м задании, чтобы вы могли возвращаться туда и обратно:

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

Затем вам нужно также передать эти данные со 2-го на 3-е задание.

1 голос
/ 30 марта 2019

Используйте намерение для передачи данных между действиями.В первом упражнении

Intent mIntent = new Intent(FirstActivity.this, ThirdActivity.class);
mIntent.putExtra("randomString", tv.getText().toString());

В третьем занятии

String s= getIntent().getStringExtra("randomString");
...