Android: получение локальных ресурсов в классе enumerate

#java #android #resources

#java #Android #Ресурсы

Вопрос:

Я пишу приложение для Android с кодом Java. Приложение может поддерживать английский и итальянский языки. Внутри приложения есть счетчик, который принимает свои значения из класса enumerate, следующего:

 public enum ElementTypesEnum {
    MEET("Meet"),
    CEREAL("Cereal"),
    FISH("Fish"),
    OTHER("Other");

    private String elementType;

    ElementTypesEnum(String elementType) {
        this.elementType = elementType;
    }

    public String getElementType() {
        return elementType;
    }
}
  

Я хочу инициализировать значения enumerate значениями, содержащимися в моем локальном файле строковых ресурсов (R.string.value_1). В этом классе у меня нет экземпляра файла ресурсов, поскольку у меня нет экземпляра Context . Как я могу это сделать? Заранее благодарю вас, Марко

Ответ №1:

Используйте идентификатор ресурса, затем извлекайте строки из контекста вашего счетчика при его заполнении.

 public enum ElementTypesEnum {
    MEAT(R.string.meat),
    CEREAL(R.string.cereal),
    FISH(R.string.fish),
    OTHER(R.string.other);

    @StringRes
    private int elementType;

    ElementTypesEnum(@StringRes int elementType) {
        this.elementType = elementType;
    }

    public int getElementType() {
        return elementType;
    }
}