如何将来自一个 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;
我需要将 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;