jeffev 19 de set. de 2012
thgbarros 19 de set. de 2012
jeffev:
Pode usar switch.
http://www.tiexpert.net/programacao/java/switch-case-default.php
Mas cairia no mesmo caso do if’s. Gostaria de uma solução mais O.O.
ViniGodoy 19 de set. de 2012
a) Use um map:
Map<Integer, Color> cores = new HashMap<Integer, Color>();
map.add(BATTERY_OK_LEVEL2, Color.GREEN);
map.add(BATTERY_OK_LEVEL3, Color.GREEN.darker());
...
Uso:
Color color = cores.get(batteryLevel);
b) Use um enum (se as cores forem fixas, eu prefiro essa):
public enum Battery {
OK_LEVEL1 ( 1 , Color . Green ),
OK_LEVEL2 ( 2 , Color . GREEN . darker ()),
FIRST_ALLARM ( 4 , Color . YELLOW );
private int code ;
private Color color ;
public Batter ( int code , Color color ) {
this . code = code ;
this . color = color ;
}
public Color getColor { return color ; }
public int getCode () { return code ; }
public static Battery byCode ( int code ) {
for ( Battery b : values ()) {
if ( b . getCode () == code ) return b ;
}
return null ;
}
}
Uso:
Color color = batteryLevel.getColor();
Rafael_Rossignol 19 de set. de 2012
Acho que o mais legal nos dias de hoje é usar enum
http://www.tiexpert.net/programacao/java/enum.php
cada enum vai ter uma cor
depois é só pegar o valor direto do objeto.
ViniGodoy 19 de set. de 2012
thgbarros 19 de set. de 2012
Obrigado a todos pelas repostas.