Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: JustenОтветов: 2

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

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

    abstract public Drawable getImage();
}

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

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

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

androidjavaenumsandroid-context

Ответы

Ответ 1 · рейтинг 3 · Joakim Berglund

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

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

}

Ответ 2 · рейтинг 1 · Rich

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы