Я пытаюсь немедленно переключиться в темный режим (без перезагрузки) с помощью переключателя во фрагменте.
Фрагмент кода, который я использую для этого:
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
Это работает при тестировании, но я хочу, чтобы он переключился в темный режим с помощью переключателя, поэтому мой код следующий.
switch_us_dark_mode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// The toggle is enabled
Log.i("tag", "Hit Dark");
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
editor.putString("theme", "dark");
}
if(!isChecked){
// The toggle is disable
Log.i("tag", "Hit Light");
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
editor.putString("theme", "light");
}
}
});
Однако это зацикливается после первого нажатия на выключатель.
I tried doing it on a thread but it threw me an error saying it must be run on the main thread.
I will move the switch below the button so that it doesnt look like its part of the form but thats besides the point.
введите описание изображения здесь
Заранее спасибо!