Использовать строковое значение ресурса в андроиде StringDef/TypeDef

У меня есть класс stringDef/ TypeDef следующим образом

public class Codes {
      public static final String Code_1 = "Code1";
      public static final String Code_2 = "Code2";
      public static final String Code_3 = "Code3";


      @Retention(RetentionPolicy.SOURCE) @StringDef({
            Code_1, Code_2, Code_3 })

      public @interface CodesMessageDef {
      }
}

Я хотел бы установить значения Code_1,2,3 из R.String.code_1, а не вводить их вручную.

Есть ли способ добиться этого варианта использования.

Заранее спасибо.........

1 ответ

Решение

Вы можете прочитать этот ответ о том, как получить контекст приложения из статического метода. Обратите внимание, что использование этого для получения контекста не является утечкой памяти, потому что вы используете контекст приложения.

Теперь вы можете сделать:

public static final String Code_1 = MyApplication.getAppContext().getString(R.id.code1);
public static final String Code_2 = MyApplication.getAppContext().getString(R.id.code2);
public static final String Code_3 = MyApplication.getAppContext().getString(R.id.code3);

Я думаю, это должно работать.

Другие вопросы по тегам