5

我有以下问题:

我创建了一个字符序列并能够命名 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

4

2 回答 2

7

还有另一个重载AlertDialog.Builder.setSingleChoiceItems()需要int为项目的字符串数组提供资源 id。将以下内容放入 xml 中,res/values例如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(), ...

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

于 2013-04-26T11:06:25.393 回答
4

string-array在strings.xml中创建一个

<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()原样使用它,因为Stringimplements CharSequence.

于 2013-04-26T11:01:01.363 回答