Java - 通过开关案例功能设置颜色

时间:2010-06-17 09:24:18

标签: java android colors

我想通过函数getColor()设置TextView的颜色。我尝试了很多不同的方法,但我无法让它发挥作用。我的代码无法编译。

import java.awt.*;
import android.graphics.Color;

public class test extends Activity {

TextView text1 = (TextView) findViewById(R.id.text1);

text1.setTextColor(getcolorss(1));

public Color getColor(int x) {
   switch(x) {
       case 1: return Color.BLUE; 
       case 2: return Color.RED;
   } 
}

}

你会怎么做?

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。查看android.graphics.ColorREDBLUE等仅仅是int个常量。因此,我们可以这样:

int[] pallete = { Color.BLUE, Color.RED };

然后简单地说:

return pallete[x];

throw ArrayIndexOutOfBoundsException超出范围时,这自然会x。您可以检查它并做其他事情,如果这是你想要的。请注意,Java中的数组是从0开始的,这意味着给出了上述声明:

pallete[0] == Color.BLUE
pallete[1] == Color.RED

原始代码使用基于1的索引,因此如果需要,您可以进行简单的翻译:

return pallete[x-1];

答案 1 :(得分:2)

你不能这样做,因为如果你打电话给getcolorss(3),那么就没有返回声明。 尝试:

public Color getcolorss(int x)
{
 switch(x)
 {
  case 1: return Color.BLUE; 
  case 2: return Color.RED;
  default: return null;
 } 
}

public Color getcolorss(int x)
{
 Color result = null;
 switch(x)
 {
  case 1: result = Color.BLUE; 
  case 2: result = Color.RED;
 }
 // this allows you to do something else here, if you require something more complex
 return result;
}