您好,我正在使用此 AppCompatDelegate 在白天/夜晚主题之间进行更改我有 2 个活动 A&B 此代码从活动 B 调用它应该使用所选样式重新创建活动 B & A 这里是我的代码
Run Code Online (Sandbox Code Playgroud)applyNight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!isNight) { SharedPrefrencesMethods.savePreferences(this, getString(R.string.night_key), true); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } else { SharedPrefrencesMethods.savePreferences(this, getString(R.string.night_key), false); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); } } });
我在 android 7 和 6 上对其进行了测试,它工作正常,即在活动 B 中更改模式并按回活动 A 重新创建新主题时。在 android 9 上尝试时,它仅更改活动 B 而不会影响其父活动 A。
android android-appcompat android-night-mode appcompatdelegate