Android 通过方法调用将rgb颜色值解析为整数
标题说明了一切Android 通过方法调用将rgb颜色值解析为整数,android,Android,标题说明了一切 switch (colorChosen) { case "Red": setEverythingColors(255,0,0,colorChosen); case "Brown": setEverythingColors(165,42,42,colorChosen); case "Orange": setEverythingColors(255,165,0,colorChosen); case "Bl
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);
}
SetEverythingColor方法是这样的
public void setEverythingColors(int c1, int c2, int c3, String color){
backgroundColor.setBackgroundColor(Color.rgb(c1,c2,c3));
colorTitle.setText(color);
}
由于某种原因,构建成功了,我没有收到任何错误或警告,但无论是哪种情况,颜色都没有设置,我正在这里拉扯头发
可能是什么情况???我发现了问题所在
case "Red":
case "Brown":
etc..
这就是问题所在。我引用字符串的方式与引用整数的方式相同
我不能说colorSelected==Red,因为它是一个字符串
我将switch语句改为if语句,并改用colorChoice.equalsRed,这就解决了问题。switch case可以工作字符串,如果它是常量,您的代码可以工作,但您忘记了break和default。您可以重试:
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;
}
你不会说什么是“背景色”——我想是某种观点吧。您可能有一些布局问题,其中整个视图被另一个子视图遮住了?视图,这样你就看不到背景了。我只是把代码的一部分贴到了我的问题所在。backgroundColor反射到开关之前定义的按钮,即backgroundColor=按钮findViewByIdR.id.theColorButton;如果这解决了您的问题,请接受您自己的答案。所有页面都应进行到系统认可的分辨率。最终结果可能是:答案接受、问题结束或页面删除。请注意你所有的问题。