Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用切换按钮启动和停止菜单项_Java_Android_Android Studio_Togglebutton - Fatal编程技术网

Java 使用切换按钮启动和停止菜单项

Java 使用切换按钮启动和停止菜单项,java,android,android-studio,togglebutton,Java,Android,Android Studio,Togglebutton,这是my MainActivity.java中的代码: 我试图使用切换按钮来切换菜单项的开和关。选中时,菜单项将背景设置为红色。未选择项目时,背景颜色为默认颜色。我是java新手,所以我不确定在onCheckedChange下的if和else语句中放什么。任何建议都会有帮助。 谢谢 XML: 我认为这应该有效: public void setColor(int color, boolean checked) { ConstraintLayout mainLayout = (Constra

这是my MainActivity.java中的代码: 我试图使用切换按钮来切换菜单项的开和关。选中时,菜单项将背景设置为红色。未选择项目时,背景颜色为默认颜色。我是java新手,所以我不确定在
onCheckedChange
下的if和else语句中放什么。任何建议都会有帮助。 谢谢

XML:


我认为这应该有效:

public void setColor(int color, boolean checked) {
    ConstraintLayout mainLayout = (ConstraintLayout)findViewById(R.id.content1);
    mainLayout.setBackgroundColor(color);
    redMenuItem.setChecked(checked);
}
对于切换:

toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    setColor(Color.GREEN, true);
                } else {
                    setColor(Color.RED, false);
                }
            }
        });

我不确定颜色是否互换,想法是这样的。我假设您在
onOptionsImetSelected()
中使用的
setColor()
中的代码按预期工作。

这适用于更改颜色。是否有一种方法可以在切换时取消选择菜单项?菜单项中选择了什么?内部的切换是触发事件的人,不是吗?你的意思是菜单项是否被选中?这就是我应该做的:在MainActivity中添加一个按钮,允许用户切换红色菜单项的开和关。从现在开始,当我点击“切换”时,它实际上不会切换菜单项的开和关
public void setColor(int color, boolean checked) {
    ConstraintLayout mainLayout = (ConstraintLayout)findViewById(R.id.content1);
    mainLayout.setBackgroundColor(color);
    redMenuItem.setChecked(checked);
}
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    setColor(Color.GREEN, true);
                } else {
                    setColor(Color.RED, false);
                }
            }
        });