菜单项必须打开或关闭日夜模式而不是切换。请帮忙完成这个功能。当应用程序处于白天模式时,用户从菜单中选择日/夜模式的项目菜单。没关系,夜间模式已开启,但是当从夜间模式中选择相同的项目时,没有变化,它应该返回到白天模式。请帮我。
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;
}
}