我很抱歉,如果这太愚蠢和简单,但我没有我能想到的每一个选项。 它甚至不是真正的编程。但是我在switch语句中有几行,我将多次使用它。我想不出可以存储所有这些代码(这些行)的任何方式,并且可以随时重用。
case 0:
bcolor=Color.rgb(240, 255, 255);//Azure
break;
case 1:
bcolor=Color.BLACK;
break;
case 2:
bcolor=Color.BLUE;
break;
case 3:
bcolor=Color.rgb(165, 42, 42);//Brown
break;
case 4:
bcolor=Color.rgb(255, 127, 50);//Coral
break;
case 5:
bcolor=Color.rgb(00, 255, 255);//cyan
break;
case 6:
bcolor=Color.rgb(255, 00, 255);//Fuchsia
break;
case 7:
bcolor=Color.rgb(255, 215, 00);//Gold
break;
case 8:
bcolor=Color.GRAY;
break;
case 9:
bcolor=Color.GREEN;
break;
case 10:
bcolor=Color.rgb(173, 255, 47);//Green Yellow
break;
case 11:
bcolor=Color.rgb(00, 255, 00);//Lime
break;
case 12:
bcolor=Color.MAGENTA;
break;
case 13:
bcolor=Color.rgb(80, 00, 00);//Maroon
break;
case 14:
bcolor=Color.rgb(80, 80, 00);//Olive
break;
case 15:
bcolor=Color.rgb(255, 165, 00);//Orange
break;
case 16:
bcolor=Color.rgb(255, 192, 203);//pink
break;
case 17:
bcolor=Color.rgb(80, 00, 80);//purple
break;
case 18:
bcolor=Color.RED;
break;
case 19:
bcolor=Color.rgb(244, 196, 30);//Saffron
break;
case 20:
bcolor=Color.rgb(192, 192, 192);//Silver
break;
case 21:
bcolor=Color.rgb(238, 82, 238);//Violet
break;
case 22:
bcolor=Color.WHITE;
break;
case 23:
bcolor=Color.YELLOW;
break;
我必须在几种开关条件下使用所有这些开关盒。是不可能将它们绑定在某种标签或其他东西上。并在我想使用时调用它们......
答案 0 :(得分:2)
将此代码包装在函数中并调用函数:
public int getColor(int i)
{
switch(i) {
case 0:
return Color.rgb(240, 255, 255);//Azure
case 1:
return Color.BLACK;
case 2:
return Color.BLUE;
case 3:
return Color.rgb(165, 42, 42);//Brown
case 4:
return Color.rgb(255, 127, 50);//Coral
case 5:
return Color.rgb(00, 255, 255);//cyan
case 6:
return Color.rgb(255, 00, 255);//Fuchsia
case 7:
return Color.rgb(255, 215, 00);//Gold
case 8:
return Color.GRAY;
case 9:
return Color.GREEN;
case 10:
return Color.rgb(173, 255, 47);//Green Yellow
case 11:
return Color.rgb(00, 255, 00);//Lime
case 12:
return Color.MAGENTA;
case 13:
return Color.rgb(80, 00, 00);//Maroon
case 14:
return Color.rgb(80, 80, 00);//Olive
case 15:
return Color.rgb(255, 165, 00);//Orange
case 16:
return Color.rgb(255, 192, 203);//pink
case 17:
return Color.rgb(80, 00, 80);//purple
case 18:
return Color.RED;
case 19:
return Color.rgb(244, 196, 30);//Saffron
case 20:
return Color.rgb(192, 192, 192);//Silver
case 21:
return Color.rgb(238, 82, 238);//Violet
case 22:
return Color.WHITE;
case 23:
return Color.YELLOW;
default:
return 0;
}
}
答案 1 :(得分:2)
首先,在XML文件中定义颜色可能很明智。
因此,请创建此文件:res/values/colors.xml
并添加如下颜色:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="azure">#f0ffff</color>
<color name="brown">#a52a2a</color>
</resources>
那么你可以将它们用作:
R.color.azure
http://developer.android.com/guide/topics/resources/more-resources.html#Color
答案 2 :(得分:0)
这样的事情:
public int getColor(int option){
switch(option){
// switch statement in here
}
return bcolor;
}
现在你可以这样称呼它:
int option = 12 // some option
int myColor = getColor(option);
答案 3 :(得分:0)
如果它们是switch语句中的唯一情况,可以将它们放在一个返回整数的静态函数中,然后调用它(bcolor = MyClass.getColor(int switchVariable))
答案 4 :(得分:0)
正如basdwarf所说,
将此代码包装在一个函数中并调用该函数。
你可以这样做(我没有把你所有的情况都拿走):
private void awesomeColorFunction() {
case 0:
bcolor=Color.rgb(240, 255, 255);//Azure
break;
case 1:
bcolor=Color.BLACK;
break;
case 2:
bcolor=Color.BLUE;
break;
}
然后在您的代码中调用它,就像这样:
awesomeColorFunction();
但最明智的方式当然是,正如Pewiity所说,将你的颜色放在xml文件中
答案 5 :(得分:0)
我见过并使用的另一个最佳解决方案是将所有这些值存储在地图中(恒定时间复杂度用于查找):
public static Map<Integer, Integer> colorMap = new HashMap<Integer, Integer>();
static
{
colorMap.put(0, Color.rgb(240, 255, 255));
colorMap.put(1, Color.BLACK);
colorMap.put(2, Color.BLUE);
colorMap.put(3, Color.rgb(165, 42, 42));
colorMap.put(4, Color.rgb(255, 127, 50));
colorMap.put(5, Color.rgb(00, 255, 255));
colorMap.put(6, Color.rgb(255, 00, 255));
colorMap.put(7, Color.rgb(255, 215, 00));
colorMap.put(8, Color.GRAY);
colorMap.put(9, Color.GREEN);
colorMap.put(10, Color.rgb(173, 255, 47));
colorMap.put(11, Color.rgb(00, 255, 00));
colorMap.put(12, Color.MAGENTA);
colorMap.put(13, Color.rgb(80, 00, 00));
colorMap.put(14, Color.rgb(80, 80, 00));
colorMap.put(15, Color.rgb(255, 165, 00));
colorMap.put(16, Color.rgb(255, 192, 203));
colorMap.put(17, Color.rgb(80, 00, 80));
colorMap.put(18, Color.RED);
colorMap.put(19, Color.rgb(244, 196, 30));
colorMap.put(20, Color.rgb(192, 192, 192));
colorMap.put(21, Color.rgb(238, 82, 238));
colorMap.put(22, Color.WHITE);
colorMap.put(23, Color.YELLOW);
}
public static int getColor(int lookup)
{
int color = colorMap.get(lookup);
return color == null ? 0 : color;
}