java - 如何在多个 Activity 中传递字符串

标签 java android android-intent

我想将字符串从 Activity 传递到其他 Activity 。 例如,告诉我有 5 个 Activity ,我从第二个到第三个到第四个到第五个得到一个文本,但是当我单击一个按钮转到第三个时,文本没有保存我通过时如何保存字符串是吗?

我尝试将我从第二个 Activity 中获得的文本传递给具有 Intent 的所有其他 Activity :

 //While on MainActivity
 Intent Second = new Intent(MainActivity.this, SecondActivity.class);
 startActivity(Second);

 //While on SecondActivity
 Intent Third = new Intent(SecondActivity.this, ThirdActivity.class);
 Third.putExtra("Third", String);
 startActivity(Third);

 //While on ThirdActivity
 TextView String;
 String = findViewByID(R.id.TextView1);
 String.setText(string);
 String string = getIntent().getStringExtra("Third");

 Intent Forth = new Intent(ThirdActivity.this, ForthActivity.class);
 Forth.putExtra("Forth", string);
 startActivity(Forth);

然后我传递这样的字符串,直到 Activity 5 有一个按钮转到第三个并且 TextView 文本未保存

我希望当我从 Activity 5 单击按钮转到第三个 Activity 时,第三个 Activity 的 TextView 是我传递给它的第二个 Activity 的文本。

最佳答案

转发所有附加内容

您可以使用 putExtras(intent)“转发”所有额外内容:

Intent third = new Intent(this, ThirdActivity.class);
third.putExtras(getIntent());
third.putExtra("THIRD", myString);

这将在每一步都保持相同的键,因此如果您回溯( Activity 5 => Activity 3),您仍然可以提取该 Activity 的相关值。

奖励:使用常量来避免拼写错误

由于您的额外内容可能会在多个 Activity 中读取,因此我会在您流程的最后一个 Activity 中定义常量(我假设是摘要或确认 Activity ):

public class LastActivity extends AppCompatActivity {

    public static final String EXTRA_NAME = "EXTRA_NAME"
    public static final String EXTRA_EMAIL = "EXTRA_EMAIL"
    public static final String EXTRA_BOOKING_ID = "EXTRA_BOOKING_ID"

    // rest of class
}

那么当您putExtragetXxxExtra 时,您就不会冒拼写错误的风险:

String name = intent.getStringExtra(LastActivity.EXTRA_NAME);

关于java - 如何在多个 Activity 中传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57473367/

相关文章:

android - 不同手机和平板电脑的响应图像

android - 如何使用编程在android中禁用系统通知

JavaMail API 连接 Mercury 邮件服务器错误

java - 在Java中获取datagramsocket中源的IP地址

android - 从 URI 创建可写的 DocumentFile

android - UnwindResume 等链接错误(安卓交叉编译)

java - android 在没有任何收件人的情况下启动 SMS Intent

android - 返回任何 Activity 的结果

java - setter方法在Spring中不起作用?

java - 单例惰性与渴望实例化