如何重新创建之前活动中的按钮?

我在 Android Studio 中遇到代码问题。

我有ActivityAActivityB

我有ActivityA按钮。ActivityB是关于设置的。例如,我可以选择应用程序的主题。全部使用完成SharedPreferences

如果我使用以下代码将主题更改为 DARK:

Button Settings = (Button) findViewById(R.id.settings);
Settings.setTextColor(Color.BLACK);     
Settings.setBackgroundResource(R.drawable.shapestylethis3);

然后我按返回键继续ActivityA,然后按钮就改变了。

现在,当我进入ActivityB并且我想改回主题LIGHT时,我想恢复此默认按钮ActivityA

style="@android:style/Widget.Button.Small"

但我不知道如何实现这一目标。ActivityB单击“保存”按钮后立即发生变化,因为除了保存到SharedPreferencesrecreate();还在onClick.

但是当我放入recreate()inonResumeActivityA,它就像一个无限循环。我将非常感谢您帮助我找到解决方案。

先感谢您。


HUWWW
浏览 115回答 1
1回答

慕的地8271018

您可以轻松地避免使用变量或变量(您可能更喜欢这两个中的任何一个)recrate()进入无限循环。ActivityApublic staticSharedPreference让我们有一个如下所示public static的变量。ActivityApublic static boolean shouldRecreate = false;现在,当您更改样式时ActivityB,请设置ActivityA.shouldRecreate = true且不要调用recreate().现在,在onResume您的函数中ActivityA检查 的值shouldRecreate并相应地调用该recreate()函数。@Overrideprotected void onResume() {    super.onResume();    if (shouldRecreate) {        recreate();        shouldRecreate = false;    }}希望有帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java