Java 如何在以前的活动中重新创建按钮?
我对Android Studio中的代码有问题 我有Java 如何在以前的活动中重新创建按钮?,java,android,recreate,Java,Android,Recreate,我对Android Studio中的代码有问题 我有ActivityA和ActivityB 在活动a中,我有按钮活动b是关于设置的。例如,我可以选择应用程序的主题。所有操作都是使用SharedReferences完成的 如果我使用以下代码将主题更改为深色: Button Settings = (Button) findViewById(R.id.settings); Settings.setTextColor(Color.BLACK); Settings.setBackgroundRe
ActivityA
和ActivityB
在活动a
中,我有按钮<代码>活动b是关于设置的。例如,我可以选择应用程序的主题。所有操作都是使用SharedReferences
完成的
如果我使用以下代码将主题更改为深色:
Button Settings = (Button) findViewById(R.id.settings);
Settings.setTextColor(Color.BLACK);
Settings.setBackgroundResource(R.drawable.shapestylethis3);
然后我按back键转到o活动a
——然后按钮被更改
现在,当我在ActivityB
中,并且我想重新更改主题灯
时,我想重新获得ActivityA
上的默认按钮:
style="@android:style/Widget.Button.Small"
但我不知道如何做到这一点ActivityB
在单击按钮“保存”后立即更改,因为除了保存到SharedReferences
之外,我还使用了recreate()在onClick
中选择code>
但是,当我在ActivityA
的onResume
中放入recreate()
时,它就像一个无限循环。我真的很感谢你帮我找到了解决办法
提前谢谢。您可以使用公共静态变量或共享引用(
)轻松避免重新创建()
在活动a
中进入无限循环
让我们在ActivityA
中设置一个public static
变量,如下所示
public static boolean shouldRecreate = false;
现在,当您从ActivityB
更改样式时,请设置ActivityA.shouldrescreate=true
,不要调用recreate()
现在,在您的活动a的onResume
函数中,检查shoulldrecreate
的值,并相应地调用recreate()
函数
@Override
protected void onResume() {
super.onResume();
if (shouldRecreate) {
recreate();
shouldRecreate = false;
}
}
希望有帮助 使用public static
变量或SharedReference
(您可能更喜欢这两个变量中的任何一个),您可以轻松避免Recreate()
进入活动a
的无限循环
让我们在ActivityA
中设置一个public static
变量,如下所示
public static boolean shouldRecreate = false;
现在,当您从ActivityB
更改样式时,请设置ActivityA.shouldrescreate=true
,不要调用recreate()
现在,在您的活动a的onResume
函数中,检查shoulldrecreate
的值,并相应地调用recreate()
函数
@Override
protected void onResume() {
super.onResume();
if (shouldRecreate) {
recreate();
shouldRecreate = false;
}
}
希望有帮助 很高兴知道我能帮助你!欢迎来到StackOverflow!很高兴知道我能帮助你!欢迎来到StackOverflow!