Пункт меню вкл / выкл день ночной режим - PullRequest
0 голосов
/ 19 апреля 2019

Необходимо, чтобы пункт меню включал или выключал дневной и ночной режимы вместо переключателя.Пожалуйста, помогите с функцией.Когда приложение находится в дневном режиме, пользователь выбирает пункт меню режима День / Ночь из меню.Это нормально, ночной режим включен, но когда тот же элемент выбран из ночного режима, никаких изменений нет, и он должен вернуться в дневной режим.Пожалуйста, помогите мне.

boolean isNight = true;
switch (item.getItemId()) {
    case R.id.day_night:
        if (Button.isChecked()) {
            //display warning message
            Toast.makeText(getApplicationContext(), getString(R.string.warning_message), Toast.LENGTH_LONG).show();
            return false;
        } else {
            if (isNight) {
                getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
            } else {
                getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
            }
            break;
        }
}     

1 Ответ

0 голосов
/ 19 апреля 2019

Создать глобальную переменную (за пределами onOptionsItemSelected)

boolean isNight;  // by default, isNight = false

Тогда в вашем onOptionsItemSelected

switch (item.getItemId()) {
    case R.id.day_night:
        if (!isNight) {
            getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
            isNight = true;
        } else {
            getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
            isNight = false;
        }
        break;
    }
}     
...