Нативный код Java
«`java
public class NightModeSwitchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_night_mode_switch);
// Получаем кнопку переключения режима
final Switch nightModeSwitch = findViewById(R.id.night_mode_switch);
// Устанавливаем текущий режим
nightModeSwitch.setChecked(isNightModeEnabled());
// Обрабатываем нажатие на кнопку переключения режима
nightModeSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// Переключаем режим
if (isChecked) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
// Перезапускаем активность, чтобы изменения вступили в силу
recreate();
}
});
}
private boolean isNightModeEnabled() {
// Получаем текущий режим
int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
// Возвращаем true, если включен ночной режим
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
}
}
«`
XML
«`xml
«`