如何修改一个活动的变量,从另一个活动?(How do I modify one activity&#

2019-11-02 10:40发布

比方说,First.class具有可变字符串CurrentValue的=“红”与一个按钮,导致Second.class(活动)。 First.class(活动)在一个TextView什么可变CurrentValue的恰好是显示器。 (目前,红色)。

如果我们按下按钮,它把我们带到Second.class,其中有一个EditText框修改变量First.class。 它也有一个按钮来确认更改。 最后,它在最底层一个TextView显示的First.class'值的变量是什么样的预览。

当Second.class'的EditText框“蓝”用户类型和点击按钮,我们将如何改变从First.class变量,而无需使用意图和打算回到那个活动? 我想留内Second.activity并从那里做的修改。

击中确认按钮后,预览的TextView应该更新到新修改的变量相匹配。 我们仍然应该看到Second.class,我提醒你。 如果用户点击“返回”或“向上”在这一点上,他们应该回到First.class也看到,在First.class TextView的已经改变。

如何修改First.class'变量如果Second.class是First.class完全独立,不能访问它? (First.class是Second.class的层次父。

Answer 1:

如何修改First.class'变量如果Second.class是First.class完全独立,不能访问它?

你不能或(更重要的),你不应该试图做到这一点。

Android的Activity是一个“特例”级和一般应视为自成一体。 换言之在第二到数据的任何改变Activity在第一被反射,其需要Activity必须是坚持使用某种形式的全局存储的( SharedPreferences例如),还是应该使用的额外传递IntentBundle

随着SharedPreferences只需第一Activity保存currentValue开始前一秒Activity和做第二相反的Activity返回到第一前。 第一个Activity ,然后只需要检查SharedPreferencesonResume()和更新其TextView ,如果必要的。

作为codeMagic提到的,然而,简单地使用startActivityForResult(...)将允许通过currentValue从第一到第二Activity ,而在第二退出之前,更新Bundle的任何更改将允许它被传递回第一个Activity ,通过onActivityResult(...)



文章来源: How do I modify one activity's variables from another activity?