使用 StringDef/TypeDef android 中的资源字符串值
use resourse string value in StringDef/TypeDef android
我有一个 stringDef/TypeDef class 如下
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 {
}
}
我想从 R.String.code_1 设置 Code_1,2,3 的值,而不是手动输入。
有没有办法实现这个用例。
提前致谢......
您可以阅读 this answer 了解如何从静态方法获取应用程序上下文。请注意,使用它来获取上下文不是内存泄漏,因为您正在使用应用程序上下文。
现在您可以:
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);
我想应该可以。
我有一个 stringDef/TypeDef class 如下
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 {
}
}
我想从 R.String.code_1 设置 Code_1,2,3 的值,而不是手动输入。
有没有办法实现这个用例。
提前致谢......
您可以阅读 this answer 了解如何从静态方法获取应用程序上下文。请注意,使用它来获取上下文不是内存泄漏,因为您正在使用应用程序上下文。
现在您可以:
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);
我想应该可以。