提问者:小点点

Android Studio Switch标签无缘无故无法访问


我目前正在尝试使用开关case语句来转换Android Studio中的一些颜色值,但我一直被标记为“开关标签不可达”。我尝试重新创建一个新的开关case语句,甚至重新启动Android Studio,但问题仍然存在。

我真的不知道该怎么办。我看不出有什么东西会让这些陈述无法实现。

下面是前面提到的代码:

public int getColorHex(int color)
    {
        int r = (Color.red(color) << 16) & 0x00FF0000;
        int g = (Color.green(color) << 8) & 0x0000FF00;
        int b = Color.blue(color) & 0x000000FF;

        int colorValue = 0xFF000000 | r | g | b;
        int hexValue;

        switch (colorValue) {
            case 0x000000:
                hexValue = 0;
                break;

            case 0xFFFFFF:
                hexValue = 1;
                break;

            case 0x00FF00:
                hexValue = 2;
                break;

            case 0x0000FF:
                hexValue = 3;
                break;

            case 0xFF0000:
                hexValue = 4;
                break;

            case 0xFFFF00:
                hexValue = 5;
                break;

            case 0xFF8000:
                hexValue = 6;
                break;

            case 0xFFDCC8:
                hexValue = 7;
                break;

            default:
                hexValue = 8;
                break;
        }

        return hexValue;
    }

这也是Android Studio给我的警告消息的屏幕截图。


共1个答案

匿名用户

根据您的代码,色值的高字节始终为0xFF。

int colorValue = 0xFF000000 | r | g | b;

但是在您的开关情况下(“默认”除外),高字节为0。所以这些情况是不可能命中的。