我正在开发一个项目,其中有 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/