Java Android-根据用户选择设置背景色

Java Android-根据用户选择设置背景色,java,android,if-statement,parse-platform,Java,Android,If Statement,Parse Platform,假设我有4个用户选项,北、南、东和西(N、S、E、W)。根据用户选择的选项,我希望每个方向都链接一种颜色,当用户选择一个他们必须做的方向时,我将其保存到我的backend Parse.com,然后将整个应用程序的背景颜色设置为链接到所选方向的颜色 目前我是这样做的: if (currentUser.getString("direction").equals("north")) { //set background color to red } else if (currentUser.g

假设我有4个用户选项,北、南、东和西(N、S、E、W)。根据用户选择的选项,我希望每个方向都链接一种颜色,当用户选择一个他们必须做的方向时,我将其保存到我的backend Parse.com,然后将整个应用程序的背景颜色设置为链接到所选方向的颜色

目前我是这样做的:

if (currentUser.getString("direction").equals("north")) {
    //set background color to red
}
else if (currentUser.getString("direction").equals("west")) {
    //set background color to blue
}
else if (currentUser.getString("direction").equals("east")) {
    //set background color to black=
}
else if (currentUser.getString("direction").equals("south")) {
    //set background color to green
}
当只有四个选项时,这并不太糟糕,但是对于这个例子,我已经简化了,如果有100个选项,这不再是一个好的选项

另一种更有效的方法是什么

用户没有选择颜色,我想将方向链接到我想要得到的颜色

提前谢谢你的帮助

我在enum方向上遇到此编译错误:

您可以使用。大概

enum Direction {
    NORTH(Color.RED), WEST(Color.BLUE), EAST(Color.BLACK), SOUTH(
            Color.GREEN);

    Direction(Color c) {
        color = c;
    }

    private Color color;

    public static Direction fromName(String name) {
        for (Direction d : Direction.values()) {
            if (d.name().equalsIgnoreCase(name)) {
                return d;
            }
        }
        return NORTH;
    }

    public Color getColor() {
        return color;
    }
}
然后,你可以像这样使用它

Direction.fromName("south").getColor(); // <-- green.

Direction.fromName(“南”).getColor();// 为什么不使用android?
例如,您可以使用:

res/values/arrays.xml


在解析服务器和应用程序之间的一致性考虑使用<代码> PARTEXFIG,文档

在此情况下必须使用开关。但在这种情况下,您应该使用整数值。@FaroukTouzi一个开关的效率并不比100个案例的if语句高多少。我在哪里可以从parse.com获得用户选择的选项?我不使用parse.com;所以我不能帮你。好吧,那么我在哪里输入所选的值/我怎么称呼它?再读一遍(答案的)最后一行。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="parse_colors">
        <item>#FFFF0000</item>
        <item>#FF00FF00</item>
        <item>#FF0000FF</item>
    </array>
</resources>
TypedArray parseColors = getResources().obtainTypedArray(R.array. parse_colors);
int currentUserBackgroundValue = currentUser.getInt("direction");
String hexColor = colors.getColor(currentUserBackgroundValue, 0); //the second value it's the default value

myView.setBackgroundColor(Color.parseColor(hexColor));