标题说明了一切。
switch (colorChosen) {
case "Red":
setEverythingColors(255,0,0,colorChosen);
case "Brown":
setEverythingColors(165,42,42,colorChosen);
case "Orange":
setEverythingColors(255,165,0,colorChosen);
case "Blue":
setEverythingColors(0,0,255,colorChosen);
case "Green":
setEverythingColors(0,128,0,colorChosen);
case "Purple":
setEverythingColors(128,0,128,colorChosen);
case "Pink":
setEverythingColors(246,171,205,colorChosen);
case "Yellow":
setEverythingColors(255,255,0,colorChosen);
case "Grey":
setEverythingColors(128,128,128,colorChosen);
}
并且setEverythingColors方法就是这个
public void setEverythingColors(int c1, int c2, int c3, String color){
backgroundColor.setBackgroundColor(Color.rgb(c1,c2,c3));
colorTitle.setText(color);
}
由于某种原因,构建成功,我没有任何错误或警告,但无论哪种情况,颜色永远不会被设置,我在这里拉头发!
可能是什么情况?
答案 0 :(得分:1)
switch-case可以工作String如果它是常量,你的代码有效但是你忘记了break和默认值。你可以重试:
switch (colorChosen) {
case "Red":
setEverythingColors(255, 0, 0, colorChosen);
break;
case "Brown":
setEverythingColors(165, 42, 42, colorChosen);
break;
case "Orange":
setEverythingColors(255, 165, 0, colorChosen);
break;
case "Blue":
setEverythingColors(0, 0, 255, colorChosen);
break;
case "Green":
setEverythingColors(0, 128, 0, colorChosen);
break;
case "Purple":
setEverythingColors(128, 0, 128, colorChosen);
break;
case "Pink":
setEverythingColors(246, 171, 205, colorChosen);
break;
case "Yellow":
setEverythingColors(255, 255, 0, colorChosen);
break;
case "Grey":
setEverythingColors(128, 128, 128, colorChosen);
break;
default:
break;
}
答案 1 :(得分:0)
我发现了什么问题。
case "Red":
case "Brown":
etc..
是问题所在。我指的是字符串,就像我引用整数一样。
我不能说colorChosen=="Red"
,因为它是一个字符串。
我将switch语句更改为if语句并改为使用colorChose.equals("Red")
,这解决了问题。