为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2023-12-13 17:09:34
我在 Android Studio 中遇到代码问题。我有ActivityA和ActivityB。我有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单击“保存”按钮后立即发生变化,因为除了保存到SharedPreferences我recreate();还在onClick.但是当我放入recreate()inonResume时ActivityA,它就像一个无限循环。我将非常感谢您帮助我找到解决方案。先感谢您。
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以轻松地避免使用变量或变量(您可能更喜欢这两个中的任何一个)recrate()进入无限循环。ActivityApublic staticSharedPreference


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


public static boolean shouldRecreate = false;

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


现在,在onResume您的函数中ActivityA检查 的值shouldRecreate并相应地调用该recreate()函数。


@Override

protected void onResume() {

    super.onResume();


    if (shouldRecreate) {

        recreate();

        shouldRecreate = false;

    }

}

希望有帮助!


查看完整回答
反对 回复 2023-12-13
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信