gpt4 book ai didi

android - 如何修改一个 Activity 的另一 Activity 的变量?

转载 作者:行者123 更新时间:2023-12-05 00:17:41 24 4
gpt4 key购买 nike

比方说头等舱有一个变量字符串当前值 =“红色”带有一个通往 Second.class(一项 Activity )的按钮。 First.class(Activity) 在 TextView 中显示变量 currentValue 的值。 (目前为红色)。

如果我们按下按钮,它会将我们带到 Second.class,它有一个 EditText 框来修改 First.class 中的变量。它还具有一个确认更改的按钮。最后,它的最底部有一个 TextView,显示 First.class 值变量的预览。

当用户在 Second.class 的 EditText 框中输入“Blue”并点击按钮时,我们如何在不使用 Intent 并返回到该 Activity 的情况下更改 First.class 中的变量?我想留在 Second.activity 中并从那里进行更改。

点击确认按钮后,预览 TextView 应更新以匹配新修改的变量。我提醒你,我们应该还会看到Second.class。如果用户此时点击“后退”或“向上”,他们应该返回到 First.class,并且还会看到 First.class 中的 TextView 已更改。

如果 Second.class 与 First.class 完全分离且无法访问它,如何修改 First.class 的变量? (First.class 是 Second.class 的分层父级。

最佳答案

How do I modify First.class' variables if Second.class is entirely separate from First.class and cannot access it?

你不能或者(更重要的是)你不应该尝试这样做。

Android Activity 是一个“特殊情况”类,通常应被视为独立的。换句话说,需要在第一个 Activity 中反射(reflect)的第二个 Activity 中的数据更改必须使用某种形式的全局存储 (SharedPreferences 例如),或者应该使用 IntentBundle 的额外内容来传递。

使用 SharedPreferences 只需让第一个 Activity 在启动第二个 Activity 之前保存您的 currentValue 并执行相反的操作在返回第一个 Activity 之前,先在第二个 Activity 中执行此操作。然后,第一个 Activity 只需检查 onResume() 中的 SharedPreferences 并在必要时更新其 TextView

正如 codeMagic 提到的,但是,只需使用 startActivityForResult(...) 就可以将 currentValue 从第一个 Activity 传递到第二个 Activity 并且,在第二个退出之前,用任何更改更新 Bundle 将允许它通过 onActivityResult(...) 传递回第一个 Activity >.

关于android - 如何修改一个 Activity 的另一 Activity 的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18600080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com