将资源字符串添加到Char Sequence

时间:2013-04-26 10:56:10

标签: android

我有以下问题:

我创建了一个Char序列,并且能够命名4个单位。但是,我宁愿使用XML文件中的字符串进行本地化。有没有办法实现这个目标?

final CharSequence[] choices = 

        //want to add strings here i.e. R.strings.lemonade  
        {"Coke", "Pepsi" , "Sprite" , "Seven Up" };

builderType.setSingleChoiceItems( choices, selected, new OnClickListener()
                    {.......

错误讯息:

  

类型不匹配:无法从int转换为CharSequence

2 个答案:

答案 0 :(得分:7)

AlertDialog.Builder.setSingleChoiceItems()的另一个重载是为字符串数组项接受int资源ID。将以下内容放在res/values中的xml中,例如strings.xml

<string-array name="choices">
    <item>Coke</item>
    <item>Pepsi</item>
    <item>Sprite</item>
    <item>Seven Up</item>
</string-array>

然后您可以将其用作:

builderType.setSingleChoiceItems(R.array.choices, selected, new OnClickListener(), ...

对于一般情况,您也可以按@Egor的建议加载Resources.getStringArray()的字符串数组资源。

答案 1 :(得分:3)

在strings.xml中创建string-array

<string-array name="choices">
    <item>Coke</item>
    <item>Pepsi</item>
    <item>Sprite</item>
    <item>Seven Up</item>
</string-array>

然后从资源中获取

String[] choices = context.getResources().getStringArray(R.array.choices);

然后在setSingleChoiceItems()中使用它,因为String实现了CharSequence