Как мне настроить это перечисление, чтобы вернуть изображение, которое я хочу?

Я пытаюсь настроить это перечисление так, чтобы оно могло возвращать правильное изображение, хотя я борюсь со способом включения контекста, поскольку он находится в отдельном классе.

public enum CubeType
{
    GREEN { 
        public Drawable getImage()
        {
            return Context.getResources().getDrawable( R.drawable.cube_green );
        }
    };

    abstract public Drawable getImage();
}

Ошибка, которую я получаю:

Невозможно сделать статическую ссылку на нестатический метод getResources() из типа Context


person Justen    schedule 25.02.2011    source источник
comment
Контекст - это класс, getResources() необходимо вызывать для экземпляра объекта.   -  person Federico klez Culloca    schedule 26.02.2011
comment
Я нашел похожую тему, которая помогла мне решить мою проблему. stackoverflow.com/questions/3560511 /   -  person Justen    schedule 26.02.2011


Ответы (2)


Я думаю, вы могли бы иметь контекст в качестве параметра для getImage():

...
GREEN { 
    public Drawable getImage(Context c)
    {
        return c.getResources().getDrawable( R.drawable.cube_green );
    }
};
...

}

person Joakim Berglund    schedule 25.02.2011
comment
Я использую настройку из одного из руководств по Android. Например, у меня есть класс GameView, который содержит класс GameThread. Затем у меня есть отдельный класс (CubeObject) для кубов и, наконец, файл enum. Есть ли более простой способ, чем передача контекста из View в Thread в CubeObject в Enum? - person Justen; 26.02.2011
comment
На самом деле, я нашел похожую тему, которая помогла. stackoverflow.com/questions/3560511 / - person Justen; 26.02.2011

Почему бы просто не определить перечисление в классе, обертывающем перечисление и HashMap, связывающем значения перечисления с идентификаторами ресурсов?

person Rich    schedule 25.02.2011
comment
Не уверен, как это сделать, хотя я понимаю это. - person Justen; 26.02.2011