【问题标题】:How to pass a text from one activity to all activities?如何将文本从一项活动传递到所有活动?
【发布时间】:2018-06-10 11:00:19
【问题描述】:

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

【问题讨论】:

  • 在意图中传递该字符串并在其他活动中提取相同的字符串,或者使用共享偏好来访问跨活动的数据
  • 使用共享偏好。 Shared Preference Example
  • 你不是说通过而不是解析吗?

标签: android android-activity textview


【解决方案1】:

只需将文本作为字符串存储在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","");

【讨论】:

  • BroadcastReceiver 不用于活动间通信,原因很明显
  • 是的,它不是......和@ManigandanS 我给出的代码只是将结果存储在一个字符串变量中。
  • 谢谢@Santanu
【解决方案2】:

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

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

在下一个活动中访问该意图:

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

【讨论】:

    【解决方案3】:

    您的问题听起来您需要对所有活动中的某些数据进行全局访问,每当需要临时访问某些内容时,即在应用程序处于活动状态之前,您可以使用您的 Application 类,该类可通过 @987654322 全局访问@ 在所有活动中。

    作为参考,请参阅此答案: https://stackoverflow.com/a/1945297/4878972

    但是,如果您需要在所有 Activity 中访问的数据需要永久保存,那么您可以采用 Shared Preference 方法。

    【讨论】:

    • 谢谢@Aseem
    【解决方案4】:

    您可以在 MainActivity 中拥有一个公共静态最终字符串,并从另一个活动中访问该字符串。如:

    在 MainActivity.java 中

    public static final String MY_STRING = "my string";
    

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

    String string = MainActivity.MY_STRING;
    

    【讨论】:

      猜你喜欢
      • 2019-10-08
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 2014-09-17
      • 1970-01-01
      相关资源
      最近更新 更多