如何将ImageView / ImageButton引用到Android Studio中的枚举值

时间:2016-07-11 12:10:58

标签: java android android-studio enums

我有这6个彩色图像,可以用作ImageView或ImageButton,它们的编码如下:

R.drawable.bluePeg
R.drawable.redPeg
R.drawable.greenPeg
R.drawable.purplePeg
R.drawable.brownPeg
R.drawable.yellowPeg

我希望它们与枚举值相关联,因此我可以在数组中更好地比较它们:

public enum Colours {
    RED, BLUE, YELLOW, BROWN,
    GREEN, PURPLE;
}

我的问题是如何使用枚举将这些图像链接到正确的值,以便我可以开始使用数组来更好地参考。

希望这是有道理的,谢谢。

2 个答案:

答案 0 :(得分:3)

您可以为枚举颜色创建构造函数:

public enum Colours {

    RED(R.drawable.redPeg), ... BLUE(R.drawable.bluePeg);

    private final int drawable;

    private Colours(int drawable) {
        this.drawable = drawable;
    }

    public int getDrawable() {
        return this.drawable;
    }
}

答案 1 :(得分:0)

您可以使用HashMap执行类似的操作,例如:

Map<String, Integer> colors = new HashMap<String, Integer>();
colors.put("RED", R.drawable.redPeg);
// etc, put all the values

检索以下值:

colors.get("RED"); // will return R.drawable.redPeg