Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
Android 通过方法调用将rgb颜色值解析为整数_Android - Fatal编程技术网

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;如果这解决了您的问题,请接受您自己的答案。所有页面都应进行到系统认可的分辨率。最终结果可能是:答案接受、问题结束或页面删除。请注意你所有的问题。