Simon Schubert Simon Schubert - 7 months ago 23
Java Question

Java - Set Color by switch case function

I want to set the color of the TextView by the function getColor(). I tried a lot of different ways but I can't get it working. My code doesn't compile.

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;
}
}

}


How would you do it?

Answer

There are many ways to do this. Looking at android.graphics.Color, RED, BLUE etc are merely int constants. Therefore, we can have something like this:

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

Then simply:

return pallete[x];

This will naturally throw ArrayIndexOutOfBoundsException when x is out of bounds. You can check for it and do something else if that's what you want. Note that arrays in Java is 0-based, meaning that given the above declaration:

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

The original code uses 1-based indexing, so if you need to, you can do simple translation:

return pallete[x-1];
Comments