菜单项 on/off 昼夜模式

Menu Item on/off day night mode

需要菜单项打开或关闭日夜模式而不是开关。请帮助功能。当应用程序处于白天模式时,用户从菜单中选择Day/Night模式的项目菜单。没关系,夜间模式打开了,但是从夜间模式选择相同的项目时,没有任何变化,应该return到白天模式。请帮助我。

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;
        }
}     

创建全局变量(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;
    }
}