在Android中的不同类之间共享String的内容

时间:2019-07-12 19:25:48

标签: java android

假设我们有两个活动,FirstActivity.java和SecondActivity.java

在第一个活动中存在一个String,该String通过用户交互来更改值。 public String input;

SecondActivity启动时,需要String的值才能将其存储在名为“ input”的本地String中以供自己使用。

3 个答案:

答案 0 :(得分:1)

在这种情况下,我想到两件事:

  1. 使用SharedPreferences保存每次更改的字符串值,然后在需要时从第二个字符串中检索它。

  2. 您可以用public static标记String变量,然后就可以从代码中的任何位置访问它。

答案 1 :(得分:1)

如果您要启动一个新应用,我强烈建议您看一下android Jetpack的Architecture组件,检查单一活动,Viewmodel,LiveData和Databinding的概念。您将被固定!否则,@ gemy845的答案看起来还不错!

答案 2 :(得分:1)

我不建议使用静态变量或共享首选项来共享这样的信息,尽管它可以工作,但是这可能会引起问题,并且不一定是好的做法。较干净的解决方案是将字符串传递到Intent包中。您可以看一下this堆栈溢出问题,以了解如何做到这一点。

以您为例,就在您切换到第二个活动之前,可以将字符串添加到意图中,如下所示:

intent.putExtra("input", input);

,并在创建的第二个活动中检索如下字符串:

input = getIntent().getExtras().getString("input", "");

相关问题