gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 22:55:21 25 4
gpt4 key购买 nike

我想将字符串从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com