如何使用 setLocalNightMode() 在每个 activity 中启用 MODE_NIGHT_YES?

How to enable MODE_NIGHT_YES in every activity with setLocalNightMode()?

我最近想创建一个设置,以便在我的 android 应用程序中启用夜间模式,我在互联网上搜索并找到了一个很好的解决方案,其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段。 .:

if(settingsSharedPreferences.getBoolean(getString(R.string.design_dark_design_key),false)) 
    {
        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    }

...为我的 MainActivity 启用黑暗模式,如果它在我的应用程序设置中启用的话。它运行完美,并在 "DarkMode" 中更改了我的 MainActivity!但是如果我打开另一个 activity,它不会像 main activity 那样以暗模式出现,但是如果我将上面的代码行添加到这个新的 activity,它也会以暗模式启动。所以我的问题:

我是否必须在每个 activity 中调用此代码行,或者有没有办法为我的应用程序中的任何 activity 设置全局夜间模式?

更新

我刚刚在 super.onCreate() 和 setContentView() 方法之前在新的 activity 中调用了代码 baove,我的整个应用程序主题发生了变化。但是如果我在 MainActivity 中调用它,我的 MainActivity 的主题就会改变......这真的很奇怪。 我也可以在 MainActivity 中更改整个主题吗?

在此先感谢您!

好的,我找到了解决办法! 对于遇到同样问题的任何人,这是为整个应用程序应用深色设计的正确方法: 我是从这个 NICE 网站上得到的

https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/

这很简单,你只需要使用:

AppCompatDelegate.setDefaultNightMode(mode);

而不是

getDelegate().setLocalNightMode(mode);

很简单,但真的很有用!!!编码愉快。

对不起我的英语,我是德国人:)