Использовать строковое значение ресурса в андроиде 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);
Я думаю, это должно работать.