比方说
头等舱
有一个变量
字符串当前值 =“红色”
带有一个通往 Second.class(一项活动)的按钮。 First.class(Activity) 在文本视图中显示变量 currentValue 的值。 (目前为红色)。
如果我们按下按钮,它将带我们到 Second.class,它有一个 EditText 框来修改 First.class 中的变量。它还具有一个确认更改的按钮。最后,它的最底部有一个 TextView,显示 First.class 值变量的预览。
当用户在 Second.class 的 EditText 框中输入“Blue”并点击按钮时,我们如何在不使用意图并返回到该活动的情况下更改 First.class 中的变量?我想留在 Second.activity 中并从那里进行更改。
点击确认按钮后,预览 TextView 应更新以匹配新修改的变量。我提醒你,我们应该还会看到Second.class。如果用户此时点击“后退”或“向上”,他们应该返回到 First.class,并且还会看到 First.class 中的 TextView 已更改。
如果 Second.class 与 First.class 完全分离且无法访问它,如何修改 First.class 的变量? (First.class 是 Second.class 的分层父级。
如果 Second.class 与 First.class 完全分离且无法访问它,如何修改 First.class 的变量?
你不能或者(更重要的是)你不应该尝试这样做。
安卓系统Activity
是一个“特殊情况”类,通常应被视为是独立的。换句话说,第二个数据的任何更改Activity
需要在第一条中体现出来Activity
必须使用某种形式的全局存储来持久保存(SharedPreferences
例如)或者应该使用额外的Intent
or a Bundle
.
With SharedPreferences
只需拥有第一个Activity
保存你的currentValue
在开始第二个之前Activity
然后在第二个做相反的事情Activity
在返回到第一个之前。首先Activity
然后只需检查SharedPreferences
in onResume()
并更新其TextView
如果需要的话。
然而,正如 codeMagic 提到的,只需使用startActivityForResult(...)
将允许通过currentValue
从第一个到第二个Activity
并且,在第二个退出之前,更新Bundle
任何更改都将允许它传递回第一个Activity
通过onActivityResult(...)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)