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

How to recreate buttons in previous activity?

我在 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 在单击按钮 "save" 后立即更改,因为除了保存到 SharedPreferences 我还在 onClick.

中使用了 recreate();

但是当我把recreate()放在ActivityA中的onResume中时,它就像一个无限循环。我将非常感谢帮助我找到解决方案。

提前致谢。

您可以使用 public static 变量或 SharedPreference 轻松避免 recrate()ActivityA 中进入无限循环(您可能更喜欢这两个).

让我们在 ActivityA 中有一个 public static 变量,如下所示。

public static boolean shouldRecreate = false;

现在,当您从 ActivityB 更改样式时,请设置 ActivityA.shouldRecreate = true 而不要调用 recreate()

现在在 ActivityAonResume 函数中检查 shouldRecreate 的值并相应地调用 recreate() 函数。

@Override
protected void onResume() {
    super.onResume();

    if (shouldRecreate) {
        recreate();
        shouldRecreate = false;
    }
}

希望对您有所帮助!