2017-03-01 53 views
0

我有一个enum类为两种类型的数学值,它们是,AMOUNTPERCENTAGE如何为ENUM设置文本并支持多种语言?

这两个是单选按钮,取决于用户选择的单选按钮。文本被相应地设置。

直到现在,我的应用程序只有一种语言,但现在我已经使它成为多语言。如何根据语言设置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

而不是直接使用枚举的名称,你可以使用具有区域限定符的字符串资源。你可以存储在每个区域设置单独strings.xml文件不同语言的字符串,然后用

getResources().getString(R.string.my_string); 

在运行时,它会给你的资源为设备的当前语言,如果它是可用的阅读资源。

官方文档中更多信息:https://developer.android.com/training/basics/supporting-devices/languages.html

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); 
    } 
} 

对于非机器人:https://softwareengineering.stackexchange.com/questions/256806/best-approach-for-multilingual-java-enum

+0

我ENUM是一个Java类,而不是机器人。在那种情况下,我怎样才能使用多语言字符串? – baabidi

+0

检查我编辑的答案 –