我有一个enum
类用于两种类型的数学值,即AMOUNT
和PERCENTAGE
。
这两个是单选按钮,取决于用户选择的单选按钮。相应地设置文本。
直到现在,我的应用只有一种语言,但现在我已经多语言了。如何根据语言设置ENUM
的文本?
这是我的enum
:
public enum DiscountTypeEnum {
AMOUNT,
PERCENTAGE;
private DiscountTypeEnum() {
}
}
我想根据用户选择的discountType
来设置字符串,
for (DiscountTypeEnum discountType : DiscountTypeEnum.values()) {
RadioButton discountTypeButton = new RadioButton(getContext());
// below is where I need to set the text from string resource file
// setText(R.string.AMOUNT) or setText(R.string.PERCENTAGE)
discountTypeButton.setText(discountType.name());
discountTypes.addView(discountTypeButton);
}
答案 0 :(得分:0)
您可以将字符串资源与区域设置限定符一起使用,而不是直接使用枚举的名称。您可以将不同语言的字符串存储在每个区域设置的单独strings.xml
个文件中,然后使用
getResources().getString(R.string.my_string);
在运行时,它将为您提供设备当前语言的资源(如果可用)。
官方文档中的更多信息:https://developer.android.com/training/basics/supporting-devices/languages.html
答案 1 :(得分:0)
enum FRUITS {
APPLE(R.string.apple),
BANANA(R.string.banana);
private @StringRes
int label;
FRUITS(@StringRes int label) { this.label = label; }
@Override
public String toString() {
return MyApplication.getApplicationContext().getString(label);
}
}