如何将来自一个 activity 的文本传递给所有活动?

How to pass a text from one activity to all activities?

我需要将 MainActivity.java 中的单个文本解析到我应用程序中的所有其他活动。
有可能这样做吗?

只需将文本作为字符串存储在 shared preferences 中,然后在其他活动中获取该字符串。或者您也可以在所有其他活动中使用 broadcast receiver。但首先,所有活动都应先调用 receiver,然后 MainActivity 才能发送文本。 在 MainActivity 中,

this.getSharedPreferences("MyPrefName", Context.MODE_PRIVATE).edit().putString("parsetext","yourtext").apply();

在其他活动中..

this.getSharedPreferences("MyPrefName", Context.MODE_PRIVATE).getString("parsetext","");

更好的方法是在活动之间传递数据。代码:

Intent intent = new Intent(getBaseContext(), MainActivity.class);
intent.putExtra("parsetext", "your text here");
startActivity(intent);

访问下一个意图 activity:

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

你的问题听起来你需要全局访问所有 Activites 中的某些数据,只要需要临时访问某些内容,即在应用程序处于活动状态之前的时间,你可以使用你的应用程序 class,它可在所有 Activites 中通过 getApplicationContext() 全局访问。

参考这个答案:

但是如果您需要在所有活动中访问的数据需要永久保存,那么您可以采用共享首选项方法。

您可以在 MainActivity 中有一个 public 静态最终字符串并从另一个 activity 访问该字符串。如:

在MainActivity.java

public static final String MY_STRING = "my string";

在其他需要访问变量的地方,可以这样访问:

String string = MainActivity.MY_STRING;