【发布时间】:2019-04-20 00:42:23
【问题描述】:
有必要将菜单项打开或关闭昼夜模式而不是开关。请帮助使用该功能。当应用程序处于日间模式时,用户从菜单中选择日/夜模式的项目菜单。没关系,开启了夜间模式,但是当从夜间模式中选择相同的项目时,没有任何变化,应该回到白天模式。请帮帮我。
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;
}
}
【问题讨论】:
-
这段代码在哪里?如果您将
isNight初始化为true,那么每次执行此代码时都会为true。MODE_NIGHT_NO无法访问。 -
我想帮助你,但我需要知道你到底想做什么。您想要一个激活和停用夜间模式的按钮吗?为什么在选中按钮时显示
Toast?这段代码在哪里,在onClick按钮事件中? -
非常感谢您的关注,您很友善,我添加了
!isNight并更改了isNight = false;,现在可以使用了。非常感谢 -
如果你设置
isNight = false然后你测试if (!isNight)那么你将无法更改为MODE_NIGHT_YES。 -
没错,你是对的,在那种情况下呢? :( 我必须在菜单项 Day / Night 模式上单击两次才能从白天模式切换到夜间模式,而在夜间模式下我单击一次并进入白天模式没有任何问题。