我有以下问题:
我创建了一个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
答案 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
。